繁体   English   中英

在java中使用模运算符

[英]Using the modulo operator in java

我想问一下使用模数运算,有人可以告诉我如何使用if语句,为什么使用[== 0],但是我们可以将模数计算中的值分配给另一个变量。

为什么下面的代码有效?

     int number = 100;
        if(number % 2 == 0)
        {
             sout(number);
        }

为什么这个不使用 if 也能工作?

lastDigit = number % 10;

为什么下面的语句不起作用?

if(number % 2)
{
sout (number);
}       

number % 2是一个无论如何都不能计算为布尔值的表达式。

15.17.3. 剩余操作员 %

据说二进制 % 运算符从隐含的除法中产生其操作数的剩余部分 左边的操作数是被除数,右边的操作数是除数。

https://docs.oracle.com/javase/specs/jls/se12/html/jls-15.html#jls-15.17.3

在这种情况下,模运算符返回一个int ,但它可以根据操作数返回一个doublelong if语句需要一个布尔值。 所以你不能做if(number % 2)的原因是因为没有布尔值。 使用if(number % 2 == 0)您正在检查模运算符的结果是否为零,这是一个布尔值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM