日期:2014-05-20  浏览次数:20560 次

发个简单的题,看看输出是多少
Java code

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);
        }


会把所有的分支都走一遍呢还是有一个满足条件的就跳出了?

------解决方案--------------------
肯定直走一个撒
 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);
}



------解决方案--------------------
3:3
------解决方案--------------------
else这个词真是好形象啊
------解决方案--------------------
3:3
i++代表取得i值之后再加,所以是在第三个判断条件时成立,并且输出的时候i已经被加到3
------解决方案--------------------
3:3 感觉这个问题比较简单
------解决方案--------------------
3:3
------解决方案--------------------
3:3
------解决方案--------------------
3:3
这种else if,都是排他性的
只要满足一个,其它都不执行了
------解决方案--------------------
应该是考察++操作和比较操作>的执行顺序吧?