Java條件語句之多重 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("童年");}
本來我想的這樣age>18&&age<40,但是后來想了下,程序肯定是一層一層判斷的,從上到下,所以age>18&&age<40寫成age>18就可以了,是這樣理解的么
2017-07-29
可以的,if是滿足條件做循環語句,做完就跳過else。你這里,if(age>=40){},這是說age>=40才會輸出中年,如果age<40,那么就進入else if(age>18)這條語句,也就是說這里已經判斷出age不滿足上面的判斷內容。
2017-07-29
if...else語句中,當不滿足if條件的時候,進入case條件。
拿你的例子來說,當age不大于60的時候,才進入else,說明進入else循環的必要條件是小于60,所以在第一個else if中,只寫年齡大于等于40歲,即可輸出“中年”。以此類推,進入第二個else if的必要條件是年齡小于40歲,所以只要寫age>=18,即可輸出“少年。
2017-07-29
可以這么理解,因為當你執行else if (age>18){System.out.printf("少年");}的時候,else就說明上一個條件不成立,也就是age>= 40不成立,所以age>18&&age<40寫成age>18 就可以了