循环运行比我预期的时间多

问题描述 投票:-1回答:1
class BlankIt{  
    public static void main(String[] args) {
        int i = 10, j = 20;
        while(i++ < --j){
            System.out.println("\n " + i + " " + j);
        }
        System.out.println("\n " + i + " " + j);
    }   
}

先前的输出是16 14。为什么会这样呢?当条件达到15 < 15时,循环停止。请帮帮我!

java loops post-increment pre-increment
1个回答
2
投票

i的增量为后增量,将在评估比较之后发生; j,另一方面,为前减量将在评估比较之前发生:

10 < 19 (true)
11 < 18 ...
12 < 17 ...
13 < 16 ...
14 < 15 ...
15 < 14 (false) 

在最后一次比较的评估之后,i将再增加一个时间,并且将具有16的值,因为已经被减少了,因此j将保留14

© www.soinside.com 2019 - 2024. All rights reserved.