作为伪代码中的一个例子:
if ((a mod 2) == 0)
{
isEven = true;
}
else
{
isEven = false;
}
作为伪代码中的一个例子:
if ((a mod 2) == 0)
{
isEven = true;
}
else
{
isEven = false;
}
当前回答
对于非负整数,可以使用余数运算符%,而不是语义略有不同的模运算符。具体的例子是:
if ((a % 2) == 0)
{
isEven = true;
}
else
{
isEven = false;
}
这可以简化为一行代码:
isEven = (a % 2) == 0;
其他回答
另外,mod可以这样使用:
int a = 7;
b = a % 2;
B等于1。因为7% 2 = 1。
虽然可以通过检查值是否为负并纠正它(许多人建议的方法)来进行适当的模运算,但还有一个更紧凑的解决方案。
(a % b + b) % b
这将首先进行模运算,将值限制在-b -> +b范围内,然后加上b以确保值为正,让下一个模运算将其限制在0 -> b范围内。
注:如果b为负数,结果也是负数
Java实际上不像C语言那样有模运算符。%在Java中是一个余数运算符。对于正整数,它的工作原理与模运算完全相同,但它对负整数的工作原理不同,与模运算不同,它也可以用于浮点数。不过,除了正整数之外,很少在任何情况下使用%,所以如果您想称其为模,那么请随意!
对于非负整数,可以使用余数运算符%,而不是语义略有不同的模运算符。具体的例子是:
if ((a % 2) == 0)
{
isEven = true;
}
else
{
isEven = false;
}
这可以简化为一行代码:
isEven = (a % 2) == 0;
为了让Java的% (REM)操作像MOD一样工作,对于负X和正Y值,你可以使用以下方法:
private int mod(int x, int y)
{
int result = x % y;
if (result < 0)
{
result += y;
}
return result;
}
或者使用三元操作符(更短,但在某些情况下不可能或效率更低):
private int mod(int x, int y)
{
int result = x % y;
return result < 0? result + y : result;
}