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

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

当前回答

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;
}

其他回答

对于非负整数,可以使用余数运算符%,而不是语义略有不同的模运算符。具体的例子是:

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

这可以简化为一行代码:

isEven = (a % 2) == 0;

来自@Cody的代码的替代方案:

使用模运算符:

bool isEven = (a % 2) == 0;

我认为这是比写if/else更好的代码,因为有更少的重复和未使用的灵活性。它确实需要更多的脑力来检查,但isEven的良好命名弥补了这一点。

正如其他人指出的那样,%(余数)操作符与数学上的操作符不同 模量运算/函数。

Mod vs % x mod n函数在[0,n)范围内将x映射到n。 而x % n操作符在(-n,n)范围内将x映射到n。

为了有办法用数学上的模运算和不运算 关心x前面的符号1可以用:

((x % n) + n) % n

也许这张图有助于更好地理解它(我一开始很难理解它)

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

Math.floorMod(a, b)

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

a % b

在Java中,它是%操作符: 15.17.3. 剩余运算符%

注意,在java.lang.Math类中还有floorMod,对于不同符号的参数,它会给出与%不同的结果:

floorMod (int x, int y)