switch 选择语句

本文详细介绍了Java中的switch选择语句,包括其概述、语法格式、执行流程、case穿透性以及注意事项。通过示例代码展示了如何利用switch语句进行条件判断,并给出了综合练习,涉及根据输入的数字匹配星期、季节和学生分数等级的场景。

switch 选择语句

概述:

​ 根据一个具体的值去和已经准备好的代码段项去选择和值匹配的代码段的语句

固定语法格式:

switch (表达式) {
			case 常量值:
				代码段
				break;
					......
			case 常量值:
				代码段
				break;
			default :
				代码段
				break;   //如果default放在最后,break可以省略不写
		}

格式解释:

switch: 开关         java表示选择意思

表达式:他的值就是用来做选择的具体的值【标准值】

case : 选项 后面的书写准备好的代码段

常量:区分case的标记 同时去和标准值进行比对的值

代码段:准备好要执行的事情

break: 打断意思 选择语句中就是结束选择语句的意思

default:默认的意思 做选择适合没有选择到对应的选项要执行的代码段

执行流程:

​ 1、首先计算出表达式的结果值【得到标准值】

​ 2、拿着标准值自上而下的和case的常量值进行匹配

​                匹配上:执行对应case后面的代码段 遇到break结束选择语句

​                没有匹配到:执行default项的代码段

代码示例:

从键盘输入 1 到 7 任意一个数字,输出对用的星期一到星期日;(7表示周日)

public static void main(String[] args) {
		System.out.println("请输入一个数字” ");
		//创建键盘录入对象
		Scanner scanner = new Scanner(System.in);
		int a = scanner.nextInt();
		
		switch(a) {
			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;
			case 6:
				System.out.println("星期六");
				break;
			case 7:
				System.out.println("星期日");
				break;
		}
	}

case 的穿透性:

case项代码中没有break语句,导致选择语句不能直接结束继续执行下一项的代码段的现象

如果多个case项的代码段是一样的代码,可以使用穿透性来完成,提升代码的复用性

代码示例:

键盘录入一个月份,输出这个月份的季节
345 月是春季,678 是夏季,9、10、11 秋季,12、1、2 冬季
其他数字,没有任何季节,录入错误

public static void main(String[] args) {
		System.out.println("输入一个月份: ");
		
		Scanner scanner = new Scanner(System.in);
		int month = scanner.nextInt();
		
		switch (month) {
		
		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;    
		}
	}

switch语句注意事项

1、switch语句的表达式结果的类型有要求:

​ jdk1.5前:必须是 byte short char int

​ jdk1.5时:增加了枚举【enum】

​ jdk1.7时:增加了String

2、case后面只能跟常量
3、default项:

​ 可以写在witch内任意位置,但是在没有匹配case项时永远最后一个执行

建议:写在最后

综合练习

要求:键盘录入一个学生的成绩,int 类型的分数,根据录入的分数,输出分数等级

[90, 100],优秀
[80,90),良好
[60, 80),及格
[0, 60),不及格

使用两种方式完成:

1、使用 if 语句完成
2、使用 switch 语句完成

代码展示:

if语句 代码示例

import java.util.Scanner;

public class Test01 {

	public static void main(String[] args) {
		//从键盘录入成绩
		 System.out.println("请输入你的成绩: ");
		 Scanner scanner = new Scanner(System.in);
		 int score = scanner.nextInt();
		 
		 if(score >= 90 && score<= 100) {
			 System.out.println("优秀");
		 }else if (score >= 80 && score < 90) {
			 System.out.println("良好");
		 }else if (score >= 60 && score < 80) {
			 System.out.println("及格");
		 }else if (score >= 0 && score < 60) {
			 System.out.println("不及格 ");
		 }else {
			 System.out.println("成绩输入有误!!");
		 }
	}

}

switch 选择语句 代码示例

import java.util.Scanner;

public class Test01 {
	public static void main(String[] args) {
			// 键盘录入成绩
			Scanner sc = new Scanner(System.in);
			System.out.println("请输入你的成绩:");
			int score = sc.nextInt();
		
			// 使用选择语句完成需求
			if (score >= 0 && score <= 100) {
				switch (score / 10) {
					case 0:
					case 1:
					case 2:
					case 3:
					case 4:
					case 5:
						System.out.println("不及格");
						break;
					case 6:
					case 7:
						System.out.println("及格");
						break;
					case 8 :
						System.out.println("良好");
						break;
					case 9 :
						
					case 10:
						System.out.println("优秀");
						break;
					
				}
			}else {
				System.err.println("你的成绩输入有误!!");
			}
		}
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值