我正在看这个Java代码:
while (n-- != 0) {
if (searchMe.charAt(j++) != substring.charAt(k++)) {
continue test;
}
}
我很困惑,确切地说,n--
操作何时发生。是在if
陈述之后吗?
答案 0 :(得分:5)
每次评估n--
条件时都会发生while
操作;特别是在评估!=
运算符的左侧时。它与if
语句无关。在每次循环迭代开始时评估while
条件;如果它的计算结果为true
,那么while
循环的主体(if
语句)就会被执行,但n--
操作完成之后就好了。 (但当然,那就是下一个循环迭代。)
答案 1 :(得分:1)
当while循环第一次运行时,如果n不等于零,则检查n的值(因为它是后减量)。
一旦评估了条件,即在它进入while循环之后,n的值将减1(n-1)。并且这个新值将在while循环中用于该特定迭代。
当while循环检查条件时,下一次迭代,如果它等于零,则检查值(n-1),等等。
答案 2 :(得分:1)
--
或++
运算符如果在包含它的语句完成后将在操作数之后放置。如果放在操作数之前,那么它将在该语句之前发生。
在这种情况下,语句为while
,因此它将在它之后发生,这意味着在评估while
语句中的条件之后。