public static void main(String[] args) {
int i = 0;
if(i++>1){
System.out.println("1:"+i);
}else if(i++>1){
System.out.println("2:"+i);
}else if(i++>1){
System.out.println("3:"+i);
}else if(i++>1 ){
System.out.println("4:"+i);
}else{
System.out.println("5:"+i);
}会把所有的分支都走一遍呢还是有一个满足条件的就跳出了?

解决方案 »

  1.   

    肯定直走一个撒
     int i = 0;
            if(i++>1){//i=0
                System.out.println("1:"+i);
            }else if(i++>1){//i=1
                System.out.println("2:"+i);
            }else if(i++>1){//i=2
                System.out.println("3:"+i);//输出这里
            }else if(i++>1 ){
                System.out.println("4:"+i);
            }else{
                System.out.println("5:"+i);
            }
      

  2.   

    3:3
    i++代表取得i值之后再加,所以是在第三个判断条件时成立,并且输出的时候i已经被加到3
      

  3.   

    3:3
    这种else if,都是排他性的
    只要满足一个,其它都不执行了