在Java中,何时发生增量后操作?

时间:2014-02-21 02:41:56

标签: java jvm operators post-increment

我正在看这个Java代码:

        while (n-- != 0) {
            if (searchMe.charAt(j++) != substring.charAt(k++)) {
                continue test;
            }
        }

我很困惑,确切地说,n--操作何时发生。是在if陈述之后吗?

3 个答案:

答案 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语句中的条件之后。