深入理解 Java 中的 Switch 语句示例详解
作者:Yhame.
在Java编程中,switch语句通过表达式值来执行不同代码块,本文介绍switch语法、案例、注意事项,以及与if语句的对比,包括基本语法、关键字、表达式、case常量、break和default的使用,以及如何根据输入的字符输出星期、大小写转换、成绩判断和季节判断等实际应用场景
深入理解 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
语句有了更深入的理解。希望这篇文章能帮助你在编程中更加得心应手!
到此这篇关于深入理解 Java 中的 Switch 语句的文章就介绍到这了,更多相关Java Switch 语句内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!