Java基础:选择结构
Java基础:选择结构
条件语句
if单选择结构
-
语法
if (布尔表达式) { 如果布尔表达式为true将执行的语句 }
-
示例
import java.util.Scanner; public class IfDemo01 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入内容:"); String s = scanner.nextLine(); //equals作用:判断字符串是否等于Hello if(s.equals("Hello")){ System.out.println(s); } System.out.println("End"); scanner.close(); } }
if...else双选择结构
-
语法
if (布尔表达式) { 如果布尔表达式为true将执行的语句 }else { 如果布尔表达式为false将执行的语句 }
-
示例
import java.util.Scanner; public class IfDemo02 { public static void main(String[] args) { //大于60分及格,小于60分不及格 Scanner scanner = new Scanner(System.in); System.out.println("请输入成绩: "); int score = scanner.nextInt(); if(score >= 60){ System.out.println("及格"); }else{ System.out.println("不及格"); } scanner.close(); } }
if...else if...else多选择结构
-
语法
if (布尔表达式1) { 如果布尔表达式1为true将执行的语句 }if else (布尔表达式2) { 如果布尔表达式2为true将执行的语句 }if else (布尔表达式3) { 如果布尔表达式3为true将执行的语句 }else { 如果以上布尔表达式为false将执行的语句 }
-
示例
import java.util.Scanner; public class IfDemo03 { public static void main(String[] args) { //大于60分及格,小于60分不及格 Scanner scanner = new Scanner(System.in); System.out.println("请输入成绩: "); int score = scanner.nextInt(); if (score == 100){ 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(); } }
-
注意
- if 语句至多有 1 个 else 语句,else 语句在所有的 else if 语句之后。
- if 语句可以有若干个 else if 语句,它们必须在 else 语句之前。
- 一旦其中一个 else if 语句检测为 true,其他的 else if 以及 else 语句都将跳过执行。
- if里可以嵌套if(套娃)
switch case语句
switch多选择结构
-
多选择结构还有一个实现方式就是switch case 语句
-
switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支
-
语法
switch(expression){ case value : //语句 break; //可选 case value : //语句 break; //可选 //你可以有任意数量的case语句 default : //可选 //语句 }
-
switch语句中的变量类型可以是:
- byte、short、int、char、String(Java SE 7后支持)
- 同时case标签必须为字符串常量或字面量
-
示例
public class SwitchDemo01 { public static void main(String[] args) { //case穿透 //switch匹配一个值 //default默认 char grade = 'C'; 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; case 'E': System.out.println("挂科"); break; default: System.out.println("未知等级"); } } }
输出
及格
-
字符串比较示例
public class SwitchDemo02 { public static void main(String[] args) { //JDK7新特性,表达式结果可以是字符串 //字符的本质还是数字 //反编译 java---class(字节码文件)---反编译(IDEA) String name = "Dt"; //字符串的比较实际上是哈希值的比较 switch (name){ case "Dt": System.out.println("Dt"); break; case "dt": System.out.println("dt"); break; default: System.out.println("未符合要求"); } } }
输出
Dt