Java plus运算符

时间:2014-05-22 23:08:49

标签: java operators assignment-operator

class ExcerciseLib1 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int x = 1;
        while (x < 10) {
            x = x + 1;
            if (x > 3) {
                System.out.println("big x");
            }
            if (x < 4) {
                System.out.println("big 1");
            }

        }

    }

}

在上面的代码中,大1输出2次,大x输出7次。我不太明白为什么大x输出7次,不应该是6次?

我明白了

if (x < 4) {
                System.out.println("big 1");
            }

输出&#34;大1&#34;两次,因为使用循环,

  1. x = 1 + 1等于2,小于4,
  2. x = 2 + 1等于3,小于4.
  3. 所以

    if (x > 3) {
                System.out.println("big x");
            }
    

    循环不应该只输出6次吗?

    1. x = 3 + 1等于4,4大于3,因此输出大x。
    2. x = 4 + 1等于5,5大于3,因此输出大x。
    3. x = 5 + 1等于6,6大于3,因此输出大x。
    4. x = 6 + 1等于7,7大于3,因此输出大x。
    5. x = 7 + 1等于8,8大于3,因此输出大x。
    6. x = 8 + 1等于9,9大于3,因此输出大x。
    7. x = 9 + 1等于10;但是循环状态x&lt; 10
    8. 我的脑子难以接受这个。我理解&#34; x = x + 1&#34;表达错了?

2 个答案:

答案 0 :(得分:4)

循环条件仅在每次迭代开始时运行。如果条件在迭代过程中变为假,则循环不会神奇地结束。

所以在最后的迭代中,x最初为9,然后你加1使它成为10,然后循环继续。

答案 1 :(得分:1)

x&lt;在增量之前评估10 ...

所以当x == 9时,它进入循环体,将x递增到10然后打印输出,然后再次计算条件