深入理解 Java 中的 Switch 语句

news/2024/9/29 9:53:16/

深入理解 Java 中的 Switch 语句

在这里插入图片描述

在 Java 编程中,switch 语句是一种强大的控制结构,能够根据表达式的值选择执行不同的代码块。本文将详细介绍 switch 的基本语法、使用案例、注意事项以及与 if 语句的选择。


基本语法

switch 语句的基本语法如下:

java">switch (表达式) {case 常量1:// 执行代码块1break;case 常量2:// 执行代码块2break;...default:// 执行默认代码块
}

关键点
  1. 关键字:使用 switch 来声明分支结构。
  2. 表达式:该表达式的值用于选择相应的 case
  3. case 常量:当表达式的值等于某个常量时,将执行对应的代码块。
  4. break:用于退出 switch,防止继续执行下一个 case
  5. default:可选的,当没有任何 case 匹配时执行。

程序流程图

在这里插入图片描述


示例代码

以下是一个简单的示例,展示如何根据输入的字符输出对应的星期几:

java">import java.util.Scanner;public class SwitchExample {public static void main(String[] args) {Scanner in = new Scanner(System.in);System.out.println("请输入一个字符(a-g):");char c1 = in.next().charAt(0);switch (c1) {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;case 'f':System.out.println("星期六");break;case 'g':System.out.println("星期日");break;default:System.out.println("输入的内容不正确");}System.out.println("退出Switch,继续执行程序");}
}

注意事项

在使用 switch 语句时,需注意以下几点:

  1. 数据类型匹配:表达式的数据类型应与 case 后的常量类型一致,或能自动转换。
  2. 支持的数据类型switch 的表达式可以是 (byte, short, int, char, enum, String)
  3. case 子句case 中的值必须是常量,不能是变量。
  4. default 子句:可选的,未匹配时执行。如果不写,可能不会有输出。
  5. break 语句:用于结束当前 case 的执行,若不写,则会顺序执行下一个 case 直到遇到 break

使用细节

java">public class SwitchDetail {public static void main(String[] args) {char c = 'a';System.out.println(c);  // 输出 aSystem.out.println((int) c);  // 输出 97switch (c) {case 'a':System.out.println("ok1");break;case 'b':System.out.println("ok1");break;case 20:  // char 类型可以转换为整数System.out.println("ok1");break;default:System.out.println("输入错误。");}//使用String类型示例,过程如下// char d = "a"// switch(c){// 	case "a":// 		System.out.println("ok1");// 		break;// 	case "b":// 		System.out.println("ok1");// 		break;// 	case 20:     //这里 会报错,这里的类型和String类型不能转换// 		System.out.println("ok1");// 		break;// 	default:// 		System.out.println("输入错误。");// }}
}

练习

  1. 使用 switch 把小写类型的 char 型转为大写(键盘输入)。只转换 a, b, c, d, e. 其它的输出 “other”。
  2. 对学生成绩大于 60 分的,输出"合格"。低于 60 分的,输出"不合格"。(注:输入的成绩不能大于 100), 提示 成绩/60
  3. 根据用于指定月份,打印该月份所属的季节。3,4,5 春季 6,7,8 夏季 9,10,11 秋季 12, 1, 2 冬季 [课堂练习, 提示 使用穿透 ]

练习 1:小写字母转大写

java">import java.util.Scanner;public class SwitchExercise {public static void main(String[] args) {Scanner in = new Scanner(System.in);System.out.println("请输入一个小写英文字母(a-e):");char c1 = in.next().charAt(0);switch (c1) {case 'a':case 'b':case 'c':case 'd':case 'e':System.out.println(c1 + "的大写是" + (char) (c1 - 32));break;default:System.out.println("other");}}
}

练习 2:成绩判断

java">// 这里使用编程思路,将成绩的范围转换成一个整数类型来进行判断,
//  [0-60]使用除法的思想把转换成一个整数
//  [60- 100] 同理使用相同的思路import java.util.Scanner;public class SwitchExercise02 {public static void main(String[] args) {Scanner in = new Scanner(System.in);System.out.println("请输入你的分数:");int grade = in.nextInt();if (grade >= 0 && grade <= 100) {switch (grade / 60) {case 0:System.out.println("不合格");break;case 1:System.out.println("合格");break;default:System.out.println("输入有误,请重新输入!!!");}}}
}

练习 3:季节判断

java">// 穿透的意思就是使用一个条件能够使所有的条件都能够符合使用import java.util.Scanner;public class SwitchExercise03 {public static void main(String[] args) {Scanner in = new Scanner(System.in);System.out.println("请输入一个月份:");int month = in.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("输入有误,请重新输入!!!");}}
}

switch 与 if 的选择

  1. 使用场景:当判断的具体数值不多且符合 byte, short, int, char, enum, String 类型时,推荐使用 switch 语句。
  2. 适用范围:对于区间判断和布尔类型的判断,使用 if 语句更为灵活。

通过上述内容,相信你对 Java 中的 switch 语句有了更深入的理解。希望这篇文章能帮助你在编程中更加得心应手!


http://www.ppmy.cn/news/1531873.html

相关文章

【Java SE】初遇Java,数据类型,运算符

&#x1f525;博客主页&#x1f525;&#xff1a;【 坊钰_CSDN博客 】 欢迎各位点赞&#x1f44d;评论✍收藏⭐ 1. Java 概述 1.1 Java 是什么 Java 是一种高级计算机语言&#xff0c;是一种可以编写跨平台应用软件&#xff0c;完全面向对象的程序设计语言。Java 语言简单易学…

计算机毕业设计之:微信小程序的校园闲置物品交易平台(源码+文档+讲解)

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…

基于微信小程序的网上商城+ssm(lw+演示+源码+运行)

摘 要 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;微信小程序被用户普遍使用&#xff0c;为方便用户能够可以…

在C#中使用JSON

JSON简介 1. 什么是 JSON&#xff1f; JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式。它的语法基于 JavaScript 对象表示法&#xff0c;简单、易读&#xff0c;同时被许多编程语言支持。尽管它来源于 JavaScript&#xff0c;但它并不依…

python 实现harmonic series调和级数算法

harmonic series调和级数算法介绍 调和级数&#xff08;Harmonic Series&#xff09;是一个在数学中非常重要的级数&#xff0c;其形式为无穷级数&#xff1a; H n ∑ k 1 n 1 k H_n\sum_{k1}^{n}\frac{1}{k} Hn​k1∑n​k1​ 其中&#xff0c; &#x1d45b; n 是正整数。…

linux命令之firewall-cmd用法

firewall-cmd Linux上新用的防火墙软件&#xff0c;跟iptables差不多的工具 补充说明 firewall-cmd 是 firewalld的字符界面管理工具&#xff0c;firewalld是centos7的一大特性&#xff0c;最大的好处有两个&#xff1a;支持动态更新&#xff0c;不用重启服务&#xff1b;第…

Font Awesome 手势图标

Font Awesome 手势图标 Font Awesome 是一个广泛使用的图标库,它为网页设计师和开发者提供了一系列高质量的图标。这些图标涵盖了从基本的网页元素到复杂的符号和手势,可以轻松地集成到各种网页和应用中。在本文中,我们将重点介绍 Font Awesome 中的手势图标,探讨它们的应…

coco(json)、yolo(txt)、voc(xml)标注格式的相互转换

一般都是用labeleme进行标注 标注格式都是json 然后根据不同的格式进行数据标注转换&#xff1a; 1.逐个json转xml: 当我们在使用数据集训练计算机视觉模型时&#xff0c;常常会遇到有的数据集只给了单个的json annotation文件&#xff0c;而模型所需要的annotation是基于每…