本来想详细讲下if的,因为很多同学没有接触过编程。但时间关系就不细说了,而且这个东西我们以后到处都使用,所以大家一定会理解的很透彻的。这里就精简点说:
if...else if...的结构:
if(条件1){ // 出现1次
// 条件满足执行的内容;
}else if(条件2){ // 出现0-n次
// 不满足条件1,满足条件2时执行的内容
}else{ // 出现0-1次
//以上条件都不满足时执行的内容
}
举个例子:
我们从键盘录入一个数,如果这个数大于0,则输出正数,如果小于0,则输出负数,如果等于零,输出零。
package day02; import java.util.Scanner; public class TestIfExec { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("请输入一个整数:"); int niInput = scan.nextInt(); if(niInput>0){ System.out.println("输入的数为正数"); }else if(niInput == 0){ System.out.println("输入的数为0"); }else{ System.out.println("输入的数为负数"); } } }
注意一点,这里判断niInput跟0是否相等,用==
再来看一个例子:
输入年龄,如果大于25,则输出青年人
如果大于45,则输出中年人
如果大于65,则输出老年
按照上面的逻辑,我们得到代码如下:
package day02; import java.util.Scanner; public class Age { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("请输入您的年龄:"); int niAge = scan.nextInt(); if(niAge>25){ System.out.println("青年人"); }else if(niAge>45){ System.out.println("中年人"); }else if(niAge>=60){ System.out.println("老年人"); } } }
仔细看就会发现:逻辑不对!!
如果我们输入了一个50,我们想得到的是中年人,但是50>25,所以程序就进入了if分支,输出了青年人。
所以我们写程序逻辑一定要正确!!
为了弥补上面的不足,可以更改如下:
package day02; import java.util.Scanner; public class Age { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("请输入您的年龄:"); int niAge = scan.nextInt(); if(niAge>25 && niAge<=45){ System.out.println("青年人"); }else if(niAge>45 && niAge<60){ System.out.println("中年人"); }else if(niAge>=60){ System.out.println("老年人"); } } }
或者:对于if...else if ,范围小的写上面,范围大的写下面:
package day02; import java.util.Scanner; public class Age { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("请输入您的年龄:"); int niAge = scan.nextInt(); // 范围小的写上面,范围大的写下面。 if(niAge>=60){ System.out.println("老年人"); }else if(niAge>45){ System.out.println("中年人"); }else if(niAge>25){ System.out.println("青年人"); } } }