文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Java基础之switch分支结构详解

2024-04-02 19:55

关注

一、基本语法

在这里插入图片描述

二、流程图

1.画出 swtich 出流程

2.案例说明流程图

在这里插入图片描述 

三、快速入门

请编写一个程序,该程序可以接收一个字符,比如:a,b,c,d,e,f,g

a 表示星期一,b 表示星期二 …
根据用户的输入显示相应的信息.要求使用 switch 语句完成
代码:



	Scanner myScanner = new Scanner(System.in);
	System.out.println("请输入一个字符(a-g)");
	char c1 = myScanner.next().charAt(0);//
	//在java中,只要是有值返回,就是一个表达式
	switch(c1) {
		case 'a' : 
			System.out.println("今天星期一,猴子穿新衣");
			break;
		case 'b' : 
			System.out.println("今天星期二,猴子当小二");
			break;
		case 'c' : 
			System.out.println("今天星期三,猴子爬雪山..");
			break;
		//.....
		default:
			System.out.println("你输入的字符不正确,没有匹配的");
	
	}
	
	System.out.println("退出了switch ,继续执行程序");

在这里插入图片描述

四、switch 注意事项和细节讨论

在这里插入图片描述


//细节1
	//表达式数据类型,应和case 后的常量类型一致,
	//或者是可以自动转成可以相互比较的类型,比如输入的是字符,而常量是 int
	
	//细节2
	//switch(表达式)中表达式的返回值必须是:
	//(byte,short,int,char,enum[枚举],String)

	//细节3
	//case子句中的值必须是常量(1,'a')或者是常量表达式,而不能是变量
	//
	//细节4
	//default子句是可选的,当没有匹配的case时,执行default
	//如果没有default 子句,有没有匹配任何常量,则没有输出
	//
	//细节5
	//break语句用来在执行完一个case分支后使程序跳出switch语句块;
	//如果没有写break,程序会顺序执行到switch结尾,除非执行到break
	char c = 'b';
	char c2 = 'c';
	switch(c) {
		case 'a' :
			System.out.println("ok1");
			break;
		case 'b'  :
			System.out.println("ok2");
			break;
		default :
			System.out.println("ok3");
	}

	System.out.println("退出了switch,继续执行..");

在这里插入图片描述

把上面的case b中的 break 都去掉,会都执行下面输出语句,不会跳出来。

在这里插入图片描述 

五、switch 课堂练习

SwitchExercise.java

1.使用 switch 把小写类型的 char 型转为大写(键盘输入)。只转换 a, b, c, d, e. 其它的输出 “other”。


//使用 switch 把小写类型的 
	//char型转为大写(键盘输入)。只转换 a->A, b->B, c, d, e. 
	//其它的输出 "other"。
	Scanner sc = new Scanner(System.in);
	System.out.println("请输入a-e");
	char c1 = sc.next().charAt(0);
	switch(c1) {
		case 'a' :
			System.out.println("A");
			break;
		case 'b' :
			System.out.println("B");
			break;
		case 'c' :
			System.out.println("C");
			break;
		case 'd' :
			System.out.println("D");
			break;
		case 'e' :
			System.out.println("E");
			break;
		default :
			System.out.println("你的输入有误~");
	
	}

在这里插入图片描述

2.对学生成绩大于 60 分的,输出"合格"。低于 60 分的,输出"不合格"。(注:输入的成绩不能大于 100), 提示: 成绩/60


//对学生成绩大于60分的,输出"合格"。低于60分的,
	//输出"不合格"。(注:输入的成绩不能大于100), 提示 成绩/60
	//思路分析
	//1. 这道题,可以使用 分支来完成, 但是要求使用switch
	//2. 这里我们需要进行一个转换, 编程思路 : 
	//   如果成绩在 [60,100] , (int)(成绩/60) = 1 
	//   如果成绩在 [0,60) , (int)(成绩/60) = 0 
	
	//代码实现
	Scanner sc = new Scanner(System.in);
	System.out.println("请输入成绩在0-100之间:");
	double score = sc.nextDouble();
	if (score >= 0 && score<=100) {
	    switch ((int) (score / 60)) {
	        case 0:
	            System.out.println("不合格");
	            break;
	        case 1:
	            System.out.println("合格");
	    }
	}else{
	    System.out.println("请输入成绩在0-100之间");
	}

在这里插入图片描述

3.根据用于指定月份,打印该月份所属的季节。3,4,5 春季 6,7,8 夏季 9,10,11 秋季 12, 1, 2 冬季 [课堂练习, 提示: 使用穿透 ]


//根据用于指定月份,
	//打印该月份所属的季节。
	//3,4,5 春季 6,7,8 夏季  9,10,11 秋季 12, 1, 2 冬季 
	//[课堂练习, 提示 使用穿透 ] 
	//
	//思路分析
	//1. 创建Scanner对象, 接收用户输入
	//2. 使用 int month 接收
	//3. 使用switch 来匹配 ,使用穿透来完成,比较简洁
	
	Scanner myScanner = new Scanner(System.in);
	System.out.println("输入月份");
	int month = myScanner.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 1:
		case 2:
		case 12: 
			System.out.println("这是冬季");
			break;
		default :
			System.out.println("你输入的月份不对(1-12)");
	}

在这里插入图片描述

六、switch 和 if 的比较

如果判断的具体数值不多,而且符合 byte、 short 、int、 char, enum[枚举], String 这 6 种类型。虽然两个语句都可以使用,建议使用 swtich 语句。其他情况:对区间判断,对结果为 boolean 类型判断,使用 ifif 的使用范围更广。

到此这篇关于Java基础之switch分支结构详解的文章就介绍到这了,更多相关Java switch分支结构内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯