本来想详细讲下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("青年人");
}
}
}
转载于:https://blog.51cto.com/632977922/1223059