java取余运算符

 Java中使用%作为取模运算的运算符,这与C、C++中是一致的。对于取模运算,大家并不陌生。取模运算实际上相当于我们小学的时候学过的求余数。当时之所以引入余数是因为还没有讲过小数的概念。所以进行除法运算时,除不尽的部分就被当做余数来处理。比如5除以3等于1余2。在当时我们学习求余数的时候只涉及到两个正整数相除,对于两个负数或者一正一负两个数或者是一个小数除以一个整数情形又是如何呢?Java中的语法到底支不支持上面的这些情况呢?我也不知道答案。不过没有关系,写个小程序试试不就知道了。 

测试一:

复制代码
1 public class ModTest {

2       public static void main(String[] args){

3       int a = 5;

4       int b = 3;

5       System.out.println(a % b);

6       }

7 }
复制代码

编译运行后的结果:2


测试二:

复制代码
1 public class ModTest {

2       public static void main(String[] args){

3       int a = -5;

4       int b = 3;

5       System.out.println(a % b);

6       }

7 }
复制代码

编译运行后的结果:-2


测试三:

复制代码
1 public class ModTest {

2       public static void main(String[] args){

3       int a = 5;

4       int b = -3;

5       System.out.println(a % b);

6       }

7 }
复制代码

编译运行后的结果:2



测试四:

复制代码
1 public class ModTest {

2       public static void main(String[] args){

3       int a = -5;

4       int b = -3;

5       System.out.println(a % b);

6       }

7 }
复制代码
编译运行后的结果:-2

通过上面的四个测试可以总结出:取模支持对负数进行运算,且结果的符号总是与被除数的符号保持一致。


测试五:

复制代码
1 public class ModTest {

2       public static void main(String[] args){

3       double a = 5.3;

4       int b = 3;

5       System.out.println(a % b);

6       }

7 }
复制代码


编译运行后的结果:2.3


测试六: 

复制代码
1 public class ModTest {

2       public static void main(String[] args){

3       int a = 5;

4       double b = 3.3;

5       System.out.println(a % b);

6       }

7 }
复制代码
编译运行后的结果:1.7000000000000002

通过测试五六可以看到:取模也支持对小数进行运算。


测试七:

复制代码
1 public class ModTest {

2       public static void main(String[] args){

3       double a = 5.3;

4       double b = 3.3;

5       System.out.println(a % b);

6       }

7 }
复制代码
编译运行后的结果:2.0

两个小数也可以进行取模运算!

另外经过测试,负小数也可以进行模运算,结果的符号也满足上面的规律。
补充:今天在看《Thinking in Java》第三章的时候,书上举了一个针对不同数据类型进行所有运算的例子,通过分析发现:对于具有相同类型的两个变量a和b,取模运算适用于除了布尔类型之外的所有基本数据类型。具体说,对于两个变量a和b,当a、b均为布尔类型时,它们是不能进行取模运算的;当a、b均为字符型(或者字节型、短整型、整型、长整型、单精度浮点型、双精度浮点型)时,它们是可以进行取模运算的。
     
  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值