最近記憶力有點不好,以前看過的東西老是會忘。
今天看到一個小面試題,竟然又想不起來了。故此記下。
public class Test {
public static void main(String[] args){
int k=0;
int j=0;
int w=0;
for(int i=0;i<5;i++){
if(++k>2&&j++>2&&++w>2){
k++;
++j;
++w;
}
}
System.out.println("k="+k+" "+"j="+j+" "+"w="+w);
}
}
本題的考點在於 if 中&&的短路運算
即若&&之前的運算爲假,則後面的運算不進行。
i=0,小於5
k=1不大於2,後面的不算,i=1,小於5
k=2不大於2,後面的不算,i=2,小於5
k=3大於2,則j不大於2,j=1,i=3,小於5
k=4大於2,則j不大於2,j=2,i=4,小於5
k=5大於2,則j不大於2,j=3,i=5,等於5
退出for
算是對++的一次複習吧。