了解Java模数?

时间:2013-06-10 21:17:47

标签: java modulo

我对Java很新。我无法理解这些代码行。有人能以基本的方式为我分解吗?

代码:

private boolean isEven(int even) {
    return even % 2 == 0;
}

private boolean canMove(int roll) {
    int avenues = isEven(this.getStreet()) ? this.getAvenue() : 4 - this
            .getAvenue();
    return this.getStreet() * 5 + avenues + roll < 25;
}

2 个答案:

答案 0 :(得分:2)

将模数运算符(Java中的%)视为“余数”运算符。它将第一个数除以第二个数时产生余数。

如果除以2时的余数为零,则数字为偶数(返回true),否则为奇数(false返回)。

然后,该方法的结果用于为this.getAvenue()变量选择4 - this.getAvenue()avenues

然后使用途径计算另一个总和,与25进行比较。如果该总和小于25,则返回true;否则返回false

答案 1 :(得分:1)

<强> ISEVEN

如果值even除以2没有余数,则返回true;否则,返回false。

<强> canMove

如果当前街道(this.getStreet())是偶然的,那么使用当前的道路(this.getAvenue());否则,使用4 - 当前的Avenue。结果存储在avenues

如果当前街道时间5 + avenues +掷骰值小于25,则返回true;否则返回false;

重写,这可能是:

private boolean canMove(int roll) {
    // create the avenues variable and initialize it with a value
    int avenues = 0;

    // if this.getStreet() is even, then avenues = this.getAvenue()
    if (isEven(this.getStreet()) {
        avenues = this.getAvenue();

    // otherwise, avenues = 4 - this.getAvenue()
    } else {
        avenues = 4 - this.getAvenue();
    }

    // if this.getStreet() * 5 + avenues + roll is less than 25, then return true
    if (this.getStreet() * 5 + avenues + roll < 25) {
        return true;
    }

    // otherwise, return false
    return false;
}