Java條件語(yǔ)句之多重 if
int age=17;
? ? ? ? ? ? ? ? if(age>60){System.out.printf("老年");}
? ? ? ? ? ? ? ? else if (age>=40){System.out.printf("中年");}
? ? ? ? ? ? ? ? else if (age>18&&age<40){System.out.printf("少年");}
? ? ? ? ? ? ? ? else {System.out.printf("童年");}
本來(lái)我想的這樣age>18&&age<40,但是后來(lái)想了下,程序肯定是一層一層判斷的,從上到下,所以age>18&&age<40寫(xiě)成age>18就可以了,是這樣理解的么
2017-07-29
可以的,if是滿足條件做循環(huán)語(yǔ)句,做完就跳過(guò)else。你這里,if(age>=40){},這是說(shuō)age>=40才會(huì)輸出中年,如果age<40,那么就進(jìn)入else if(age>18)這條語(yǔ)句,也就是說(shuō)這里已經(jīng)判斷出age不滿足上面的判斷內(nèi)容。
2017-07-29
if...else語(yǔ)句中,當(dāng)不滿足if條件的時(shí)候,進(jìn)入case條件。
拿你的例子來(lái)說(shuō),當(dāng)age不大于60的時(shí)候,才進(jìn)入else,說(shuō)明進(jìn)入else循環(huán)的必要條件是小于60,所以在第一個(gè)else if中,只寫(xiě)年齡大于等于40歲,即可輸出“中年”。以此類推,進(jìn)入第二個(gè)else if的必要條件是年齡小于40歲,所以只要寫(xiě)age>=18,即可輸出“少年。
2017-07-29
可以這么理解,因?yàn)楫?dāng)你執(zhí)行else if (age>18){System.out.printf("少年");}的時(shí)候,else就說(shuō)明上一個(gè)條件不成立,也就是age>= 40不成立,所以age>18&&age<40寫(xiě)成age>18 就可以了