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就可以了,是这样理解的么
可以的,if是满足条件做循环语句,做完就跳过else。你这里,if(age>=40){},这是说age>=40才会输出中年,如果age<40,那么就进入else if(age>18)这条语句,也就是说这里已经判断出age不满足上面的判断内容。
if...else语句中,当不满足if条件的时候,进入case条件。
拿你的例子来说,当age不大于60的时候,才进入else,说明进入else循环的必要条件是小于60,所以在第一个else if中,只写年龄大于等于40岁,即可输出“中年”。以此类推,进入第二个else if的必要条件是年龄小于40岁,所以只要写age>=18,即可输出“少年。
可以这么理解,因为当你执行else if (age>18){System.out.printf("少年");}的时候,else就说明上一个条件不成立,也就是age>= 40不成立,所以age>18&&age<40写成age>18 就可以了