java求余符,Java 求余操作符

百分号(%)是求余操作符。22%5即从22中拿走5,再拿走5...不够拿走,就余下了4。代码放在:

package semantics.statement;

public class ArithmeticOpDemo{

}

求余操作符有一些需要注意的细节。

整数与浮点数的不同

整数除法遵循规则

1.浮点数

通常我们不对浮点数求余。

static void remainderOperator(){

pln("15 / 4.0 = "+ 15/4.0);

pln("15 % 4.0 = "+ 15%4.0);

pln("7 % 2.2 = "+ 7 % 2.2);

}15 / 4.0 = 3.75

15 % 4.0 = 3.0

7 % 2.2 = 0.39999999999999947

虽然15 % 4.0 比较理想,但是7 % 2.2不是我们希望的0.4,解释起来也麻烦。

2.整数除法遵循规则 如果两个操作数都是正整数,如同还没有学过小数的小朋友的计数方式。这是常用的方式,

13/ 5 = 2

13 % 5 = 3

2 % 5  = 2

有奇葩问:13 / 5.0  = 2.6,那么余数是不是2.6的小数点后面的6。

我们只能够说,13 / 5.0  = 2.6,的确13 / 5  = (int)Math.floor(13 / 5.0),即2,你在这一步是对的, 那么,余数13 % 5 = 13- (13 / 5)*5 = 13-2*5 =3

整数除法遵循规则:

(x/y)*y + x %y == x

x %y = x - (x/y)*y

如果负数参与计算,x/y 的结果很容易理解,可以将符号先写出来。

pln("-13/ 5 = "+ -13 / 5);     //  -2         pln("13/ -5 = "+ 13 / -5);     //  -2

pln("-13/ -5 = "+ -13 / -5);  // 2

但是,从x %y = x - (x/y)*y 可知,

-13% 5 = -13 - (-2) *5 = -13+10 = -3 13% -5 = 13 - (-2) *(-5) = 13 -10 = 3

-13%-5  = -13 -  2*(-5) = -13 +10 = -3

虽然不难,但是一会3一会-3,程序猿通常很懒的,不希望搞这种东西。所以,

当%的一个或两个操作数是负数时,理解起来并不直观,因而应避免在负数时使用%。

3.i%2==0

求余操作时,0是个好东西,如同C语言中的0. 判断i是否偶数,使用if(i%2==0);判断i是否奇数数,不要if(i%2==1) ,因为还有i%2== -1。

例如打印[-1,6]之间的奇数:

static void remainderOp(){

for(int i = -1; i<6; i++ ){

if(i%2==0){

continue;

}

System.out.println("i =" + i);

}

}i =-1

i =1

i =3

i =5

如果是代码

static void remainderOp(){

for(int i = -1; i<6; i++ ){

//if(i%2==0) continue;System.out.println("i =" + i);

if(i%2==1){

System.out.println("i =" + i);

}

}

}i =1 i =3 i =5

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值