作为伪代码中的一个例子:

if ((a mod 2) == 0)
{
    isEven = true;
}
else
{
    isEven = false;
}

当前回答

在Java中,mod操作可以这样执行:

Math.floorMod(a, b)

注意: mod操作不同于余数操作。在Java中,剩余的操作可以这样执行:

a % b

其他回答

虽然可以通过检查值是否为负并纠正它(许多人建议的方法)来进行适当的模运算,但还有一个更紧凑的解决方案。

(a % b + b) % b

这将首先进行模运算,将值限制在-b -> +b范围内,然后加上b以确保值为正,让下一个模运算将其限制在0 -> b范围内。

注:如果b为负数,结果也是负数

在使用'remainder'操作符%之前,您应该检查规范:

http://java.sun.com/docs/books/jls/third_edition/html/expressions.html#15.17.3

// bad enough implementation of isEven method, for fun. so any worse?
boolean isEven(int num)
{
    num %= 10;
    if(num == 1)
       return false;
    else if(num == 0)
       return true;
    else
       return isEven(num + 2);
}
isEven = isEven(a);

下面是用最少的Java代码表示的伪代码;

boolean isEven = a % 2 == 0;

现在我将把它分解成各个部分。Java中的模运算符是百分比字符(%)。因此,取一个int % int返回另一个int。双等号(==)操作符用于比较值,例如一对int,并返回一个布尔值。然后将其分配给布尔变量'isEven'。根据运算符优先级,在比较之前计算模量。

模运算符是%(百分号)。为了测试均匀性或通常对2的幂做模运算,你也可以使用&(和运算符),比如isEven = !(a & 1)。

Java中的余数运算符是%,取模运算符可以表示为

public int mod(int i, int j)
{
  int rem = i % j;
  if (j < 0 && rem > 0)
  {
    return rem + j;
  }
  if (j > 0 && rem < 0)
  {
    return rem + j;
  }
  return rem;
}