条件选择语句
我们一般将条件选择语句分为三类:
- 单条件
- 双条件
- 多条件
本篇文章将分开诉说着三类。
单条件
单条件的语法很简单:
if (条件) {
// 代码
}
条件这里我们需要注意下,可以向里写入两种:
- 布尔值
- 布尔表达式
当然,格式也是至关重要的,养成良好的代码习惯是每位IT工作人员应该的,在这里我介绍四种不同的方式:
- if (条件1 && 条件2) 【建议使用】
- if (条件1 || 条件2) 【建议使用】
- if (条件1 & 条件2) 【不推荐】
- if (条件1 | 条件2) 【不推荐】
给大家一个例子:
if (3 > 2) {};
现在我们需要实现输入分数,若是及格,控制台打印及格, 若是不及格,程序结束:
import java.util.Scanner;
public class Demo05If {
public static void main(String[] args) {
// 1. 单条件
Scanner scanner = new Scanner(System.in);
System.out.println("请输入你的分数:");
int i = scanner.nextInt();
if(i >= 60) {
System.out.println("及格!!!");
}
}
}
双条件
语法:
if (条件) {
// 满足条件的时候运行
} else {
// 不满足条件的时候运行
}
我们使用双条件就可以将单条件中的场景完善:
import java.util.Scanner;
public class Demo05If {
public static void main(String[] args) {
// 1. 单条件
Scanner scanner = new Scanner(System.in);
System.out.println("请输入你的分数:");
int i = scanner.nextInt();
if(i >= 60) {
System.out.println("及格!!!");
} else {
System.out.println("继续努力!!!");
}
}
}
多条件
一般我们在很多场景下需要使用多条件类型的语句,例如在期末分析学生成绩时,若学生成绩在0-59是不及格,60-79是中等,80-89是良好,90往上是优等。
语法是:
if(条件) {
} else if (条件) {
} else if (条件) {
} else {
}
那么我们实现这个场景:
import java.util.Scanner;
public class Demo05If {
public static void main(String[] args) {
// 1. 单条件
Scanner scanner = new Scanner(System.in);
System.out.println("请输入你的分数:");
int i = scanner.nextInt();
if(i < 60) {
System.out.println("不及格");
} else if(i < 80){
System.out.println("中等");
} else if (i < 90) {
System.out.println("良好");
} else {
System.out.println("优秀");
}
}
}
多条件嵌套
先画一个流程图:
我们介绍下多条件嵌套的语法:
if () {
if() {
} else {
}
} else {
if() {
} else {
}
}
简单来说,就是为了满足需求,我们不得不在一个多条件的IF语句中加入多个IF语句来完成项目需求的实现,所以一般建议在使用多流程嵌套前先画一个流程图理清思路(别写到后面自己都不知道自己在写什么)。
import java.util.Random;
public class Demo06 {
public static void main(String[] args) {
// sex age
Random random = new Random();
// 0(女) 1(男)
int sex = random.nextInt(2);
int age = random.nextInt(10) + 15;
//三元运算符,若sex等于0,就打印"女";不等于0,就打印"男"
System.out.println("性别:" + (sex == 0 ? "女" : "男") + " 年龄:" + age);
if(sex == 0) {
// 女的
if(age < 20) {
System.out.println("no");
} else {
System.out.println("yes");
}
} else {
// 男的
if(age < 22) {
System.out.println("no");
} else {
System.out.println("yes");
}
}
}
}
Switch选择语句
语法:
switch(变量) {
case 值:
代码
break;
case 值:
代码
break;
case 值:
代码
break;
default:
代码
break;
}
现在有一个场景:
学习计划的制定。周一到周五(每天的内容已经确定)。
- 周一:java环境安装
- 周二:变量
- 周三:数据类型
- 周四:条件判断
- 周五:循环
- 其他时间: 休息
写一个程序,用户输入星期几(1~7)。然后程序输出你要做的事情。
如果我们要用条件选择语句也可实现:
import java.util.Scanner;
public class Demo07 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("输入星期(1 ~7)");
int week = scanner.nextInt();
if(week == 1) {
System.out.println("环境安装");
} else if (week == 2) {
System.out.println("变量");
} else if (week == 3) {
System.out.println("数据类型");
} else if (week == 4) {
System.out.println("条件判断");
} else if (week == 5) {
System.out.println("循环结构");
} else {
System.out.println("休息");
}
}
}
但这里有些问题:
- 条件不是一个范围,是一个固定的值
- 判断的流程比较长
那么在这里就可以用到switch语句:
import java.util.Scanner;
public class Demo07 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("输入星期(1 ~7)");
int week = scanner.nextInt();
switch (week) {
case 1:
System.out.println("环境安装");
break;
case 2:
System.out.println("变量");
break;
case 3:
System.out.println("数据类型");
break;
case 4:
System.out.println("类型转换");
break;
case 5:
System.out.println("循环与条件判断");
break;
default:
System.out.println("休息");
break;
}
}
}
我们需要注意break,一定要写上。
我们再看一个场景:输入月份然后获得对应的季节:
import java.util.Scanner;
public class Demo08 {
public static void main(String[] args) {
// 输入一个月份,得到对应的季节
Scanner scanner = new Scanner(System.in);
int i = scanner.nextInt();
switch (i) {
case 3:
case 4:
case 5:
System.out.println("春");
break;
case 6:
case 7:
case 8:
System.out.println("夏");
break;
case 9:
case 10:
case 11:
System.out.println("秋");
break;
case 12:
case 1:
case 2:
System.out.println("冬");
break;
default:
System.out.println("未知月份");
break;
}
}
}