深入明确 Java 中的 Switch 语句
在 Java 编程中,switch 语句是一种强大的控制布局,能够根据表达式的值选择实行不同的代码块。本文将具体先容 switch 的基本语法、使用案例、注意事项以及与 if 语句的选择。
基本语法
switch 语句的基本语法如下:
- switch (表达式) {
- case 常量1:
- // 执行代码块1
- break;
- case 常量2:
- // 执行代码块2
- break;
- ...
- default:
- // 执行默认代码块
- }
复制代码 关键点
- 关键字:使用 switch 来声明分支布局。
- 表达式:该表达式的值用于选择相应的 case。
- case 常量:当表达式的值等于某个常量时,将实行对应的代码块。
- break:用于退出 switch,防止继续实行下一个 case。
- default:可选的,当没有任何 case 匹配时实行。
程序流程图
示例代码
以下是一个简单的示例,展示怎样根据输入的字符输出对应的星期几:
- 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 语句时,需注意以下几点:
- 数据范例匹配:表达式的数据范例应与 case 后的常量范例同等,或能自动转换。
- 支持的数据范例:switch 的表达式可以是 (byte, short, int, char, enum, String)。
- case 子句:case 中的值必须是常量,不能是变量。
- default 子句:可选的,未匹配时实行。如果不写,大概不会有输出。
- break 语句:用于结束当前 case 的实行,若不写,则会顺序实行下一个 case 直到遇到 break。
使用细节
- public class SwitchDetail {
- public static void main(String[] args) {
- char c = 'a';
- System.out.println(c); // 输出 a
- System.out.println((int) c); // 输出 97
- switch (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("输入错误。");
- // }
- }
- }
复制代码 训练
- 使用 switch 把小写范例的 char 型转为大写(键盘输入)。只转换 a, b, c, d, e. 其它的输出 “other”。
- 对学天生绩大于 60 分的,输出"合格"。低于 60 分的,输出"不合格"。(注:输入的结果不能大于 100), 提示 结果/60
- 根据用于指定月份,打印该月份所属的季节。3,4,5 春季 6,7,8 夏季 9,10,11 秋季 12, 1, 2 冬季 [课堂训练, 提示 使用穿透 ]
训练 1:小写字母转大写
- 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:结果判断
- // 这里使用编程思路,将成绩的范围转换成一个整数类型来进行判断,
- // [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:季节判断
- // 穿透的意思就是使用一个条件能够使所有的条件都能够符合使用
- 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 的选择
- 使用场景:当判断的具体数值不多且符合 byte, short, int, char, enum, String 范例时,推荐使用 switch 语句。
- 实用范围:对于区间判断和布尔范例的判断,使用 if 语句更为灵活。
通过上述内容,信赖你对 Java 中的 switch 语句有了更深入的明确。希望这篇文章能帮助你在编程中更加得心应手!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |