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