选择结构
选择结构
-
if 单选择结构
-
if 双选择结构
-
if 多选择结构
-
嵌套的 if 结构
-
switch 多选择结构
-
if 单选择结构
-
我们很多时候需要去判断一个东西是否可行,然后我们采取执行,这样一个过程在程序中用 if 语句来表示
-
语法:
if(布尔表达式) { // 如果布尔表达式为true则执行此{}内的语句 }
代码示例:
Scanner scanner = new Scanner(System.in); System.out.println("请输入内容:"); // 接收 String str = scanner.nextLine(); // equales:判断字符串是否相等 if (str.equals("hello")) {// 为true时执行{}里的内容 System.out.println(str); } System.out.println("End"); scanner.close();
运行示例:
输入hello时
请输入内容: hello hello End
输入其它内容时
请输入内容: hell End
-
-
if 双选择结构(if-else结构)
语法:
if(布尔表达式) { // 如果布尔表达式的值为true,执行 }else { // 如果布尔表达式的值为false,执行 }
代码示例:
// 考试分数大于60及格,小于60不及格 Scanner scanner = new Scanner(System.in); System.out.println("请输入成绩:"); int score = scanner.nextInt(); if (score >= 60) {// true System.out.println("及格"); }else {// false System.out.println("不及格"); } scanner.close();
运行结果:
请输入成绩: 60 及格
-
if 多选结构
在真实情况中,可能存在ABCD,存在多区间多级判断。比如90-100分是A,80-90分是B……等,所以我们需要一个多选择结构来处理这类问题。
语法:
if(布尔表达式1) { // 如果布尔表达式1的值为true执行代码 }else if(布尔表达式2) { // 如果布尔表达式2的值为true执行代码 }else if(布尔表达式3) { // 如果布尔表达式3的值为true执行代码 }else if(布尔表达式4) { // 如果布尔表达式4的值为true执行代码 }else { // 如果以上布尔表达式都不为true执行代码 }
代码示范:
Scanner scanner = new Scanner(System.in); System.out.println("请输入成绩:"); int score = scanner.nextInt(); if (score == 100) {// true System.out.println("满分"); }else if (score < 100 && score >= 90) { System.out.println("A"); }else if (score < 90 && score >= 80) { System.out.println("B"); }else if (score < 80 && score >= 70) { System.out.println("C"); }else if (score < 70 && score >= 60) { System.out.println("D"); }else if (score < 60 && score >= 0) { System.out.println("不及格"); }else { System.out.println("成绩不合法!"); } scanner.close();
运行结果:
请输入成绩: 101 成绩不合法!
注:
- if 语句至多有 1 个 else 语句,else 语句在所有的 else if 语句之后。
- if 语句可以有若干个 else if 语句,它们必须在 else 语句之前。
- 一旦其中有一个 else if 语句检测为 true,其它的 else if 以及 else 语句都将跳过执行。
-
嵌套的 if 结构
使用嵌套的 if…else 语法是合法的。也就是说你可以在另一个 if 或者 else if 语句中使用 if 或者 else if 语句。你可以像 if 语句一样嵌套 else if…else。
语法:
if(布尔表达式1) { // 如果布尔表达式1的值为true执行代码 if(布尔表达式2) { // 如果布尔表达式1的值为true执行代码 } }
代码示例:
Scanner scanner = new Scanner(System.in); System.out.println("请输入成绩:"); int score = scanner.nextInt(); if(score > 0) { if(score < 100) { System.out.println("成绩合法"); } } scanner.close();
-
switch多选择结构
- 多选择结构还有一个实现方法就是 switch case 语句。
- switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支
- switch 语句中的变量类型可以是:
- byte、short、int、char
- 从Java SE 7 开始,switch 支持字符串 String 类型了
- 同时 case 标签必须为字符串常量或字面量
代码示例:
char grade = 'C'; // case:穿透 // switch:匹配一个具体的值 // break:直接跳出循环,不再执行下面的语句 switch (grade) { case 'A': System.out.println("优"); break; case 'B': System.out.println("良"); break; case 'C': System.out.println("中"); break; case 'D': System.out.println("差"); break; default: System.out.println("成绩输入错误");
运行结果:
中