java中for循环的判断条件

首先通过代码,回顾下for循环的执行顺序:

  代码摘自园友のんきネコ,如下:

public class TestOrder {

    static boolean order(char c) {
        System.out.print(c);
        return true;
    }
    
    public static void main(String[] args) {
        int i = 0;
        for (order('A'); order('B') && (i < 2); order('C')) {
            i++;
            order('D');
        }
    }
}

执行结果如下:ABDCBDCB

下面来看下代码A片段与代码B片段之间的结果,

//代码A片段
for(int i = 0; i < 5; i++){
    System.out.print(i+" ");
}
//代码B片段
for(int i = 0; i < 5; ++i){
    System.out.print(i+" ");
}

两段代码执行结果一致,都为:0 1 2 3 4

原因分析:根据代码执行顺序,i++与++i都是每次循环体结束后执行,虽然两个表达式的结果不一样,但是每次循环体结束都是将i的值与5的比较。而++i与i++执行后i的结果是一样的。所以,在这种结构的for循环之中,两种写法并没有区别。