-4

我对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;
}
4

2 回答 2

2

将模运算符(%此处为 Java)视为“余数”运算符。当第一个数字除以第二个数字时,它会产生余数。

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

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

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

于 2013-06-10T21:22:57.970 回答
1

是偶数

如果被even除的值2没有余数,则返回true;否则,返回假。

可以移动

如果当前街道 ( this.getStreet()) 是偶数,则使用当前大道 ( this.getAvenue());否则,使用 4 - 当前大道。其结果存储在avenues.

如果当前街道乘以 5++ avenuesa roll 值小于 25,则返回 true;否则返回假;

重写,这可能是:

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;
}
于 2013-06-10T21:25:43.750 回答