[英]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
,但它可以根据操作数返回一个double
或long
。 if
语句需要一个布尔值。 所以你不能做if(number % 2)
的原因是因为没有布尔值。 使用if(number % 2 == 0)
您正在检查模运算符的结果是否为零,这是一个布尔值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.