条件选择语句
我们一般将条件选择语句分为三类:
- 单条件
- 双条件
- 多条件
本篇文章将分开诉说着三类。
单条件
单条件的语法很简单:
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 ageRandom 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;}}
}