深入明确 Java 中的 Switch 语句

打印 上一主题 下一主题

主题 809|帖子 809|积分 2427

深入明确 Java 中的 Switch 语句


在 Java 编程中,switch 语句是一种强大的控制布局,能够根据表达式的值选择实行不同的代码块。本文将具体先容 switch 的基本语法、使用案例、注意事项以及与 if 语句的选择。

基本语法

switch 语句的基本语法如下:
  1. switch (表达式) {
  2.     case 常量1:
  3.         // 执行代码块1
  4.         break;
  5.     case 常量2:
  6.         // 执行代码块2
  7.         break;
  8.     ...
  9.     default:
  10.         // 执行默认代码块
  11. }
复制代码

关键点


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

程序流程图



示例代码

以下是一个简单的示例,展示怎样根据输入的字符输出对应的星期几:
  1. import java.util.Scanner;
  2. public class SwitchExample {
  3.     public static void main(String[] args) {
  4.         Scanner in = new Scanner(System.in);
  5.         System.out.println("请输入一个字符(a-g):");
  6.         char c1 = in.next().charAt(0);
  7.         switch (c1) {
  8.             case 'a':
  9.                 System.out.println("星期一");
  10.                 break;
  11.             case 'b':
  12.                 System.out.println("星期二");
  13.                 break;
  14.             case 'c':
  15.                 System.out.println("星期三");
  16.                 break;
  17.             case 'd':
  18.                 System.out.println("星期四");
  19.                 break;
  20.             case 'e':
  21.                 System.out.println("星期五");
  22.                 break;
  23.             case 'f':
  24.                 System.out.println("星期六");
  25.                 break;
  26.             case 'g':
  27.                 System.out.println("星期日");
  28.                 break;
  29.             default:
  30.                 System.out.println("输入的内容不正确");
  31.         }
  32.         System.out.println("退出Switch,继续执行程序");
  33.     }
  34. }
复制代码
注意事项

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

  • 数据范例匹配:表达式的数据范例应与 case 后的常量范例同等,或能自动转换。
  • 支持的数据范例:switch 的表达式可以是 (byte, short, int, char, enum, String)。
  • case 子句:case 中的值必须是常量,不能是变量。
  • default 子句:可选的,未匹配时实行。如果不写,大概不会有输出。
  • break 语句:用于结束当前 case 的实行,若不写,则会顺序实行下一个 case 直到遇到 break。
使用细节

  1. public class SwitchDetail {
  2.     public static void main(String[] args) {
  3.         char c = 'a';
  4.         System.out.println(c);  // 输出 a
  5.         System.out.println((int) c);  // 输出 97
  6.         switch (c) {
  7.             case 'a':
  8.                 System.out.println("ok1");
  9.                 break;
  10.             case 'b':
  11.                 System.out.println("ok1");
  12.                 break;
  13.             case 20:  // char 类型可以转换为整数
  14.                 System.out.println("ok1");
  15.                 break;
  16.             default:
  17.                 System.out.println("输入错误。");
  18.         }
  19.       //使用String类型示例,过程如下
  20.                 // char d = "a"
  21.                 // switch(c){
  22.                 //         case "a":
  23.                 //                 System.out.println("ok1");
  24.                 //                 break;
  25.                 //         case "b":
  26.                 //                 System.out.println("ok1");
  27.                 //                 break;
  28.                 //         case 20:     //这里 会报错,这里的类型和String类型不能转换
  29.                 //                 System.out.println("ok1");
  30.                 //                 break;
  31.                 //         default:
  32.                 //                 System.out.println("输入错误。");
  33.                 // }
  34.     }
  35. }
复制代码
训练


  • 使用 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:小写字母转大写

  1. import java.util.Scanner;
  2. public class SwitchExercise {
  3.     public static void main(String[] args) {
  4.         Scanner in = new Scanner(System.in);
  5.         System.out.println("请输入一个小写英文字母(a-e):");
  6.         char c1 = in.next().charAt(0);
  7.         
  8.         switch (c1) {
  9.             case 'a':
  10.             case 'b':
  11.             case 'c':
  12.             case 'd':
  13.             case 'e':
  14.                 System.out.println(c1 + "的大写是" + (char) (c1 - 32));
  15.                 break;
  16.             default:
  17.                 System.out.println("other");
  18.         }
  19.         
  20.     }
  21. }
复制代码
训练 2:结果判断

  1. // 这里使用编程思路,将成绩的范围转换成一个整数类型来进行判断,
  2. //  [0-60]使用除法的思想把转换成一个整数
  3. //  [60- 100] 同理使用相同的思路
  4. import java.util.Scanner;
  5. public class SwitchExercise02 {
  6.     public static void main(String[] args) {
  7.         Scanner in = new Scanner(System.in);
  8.         System.out.println("请输入你的分数:");
  9.         int grade = in.nextInt();
  10.         if (grade >= 0 && grade <= 100) {
  11.             switch (grade / 60) {
  12.                 case 0:
  13.                     System.out.println("不合格");
  14.                     break;
  15.                 case 1:
  16.                     System.out.println("合格");
  17.                     break;
  18.                 default:
  19.                     System.out.println("输入有误,请重新输入!!!");
  20.             }
  21.         }
  22.     }
  23. }
复制代码
训练 3:季节判断

  1. // 穿透的意思就是使用一个条件能够使所有的条件都能够符合使用
  2. import java.util.Scanner;
  3. public class SwitchExercise03 {
  4.     public static void main(String[] args) {
  5.         Scanner in = new Scanner(System.in);
  6.         System.out.println("请输入一个月份:");
  7.         int month = in.nextInt();
  8.         switch (month) {
  9.             case 3:
  10.             case 4:
  11.             case 5:
  12.                 System.out.println("春季");
  13.                 break;
  14.             case 6:
  15.             case 7:
  16.             case 8:
  17.                 System.out.println("夏季");
  18.                 break;
  19.             case 9:
  20.             case 10:
  21.             case 11:
  22.                 System.out.println("秋季");
  23.                 break;
  24.             case 12:
  25.             case 1:
  26.             case 2:
  27.                 System.out.println("冬季");
  28.                 break;
  29.             default:
  30.                 System.out.println("输入有误,请重新输入!!!");
  31.         }
  32.     }
  33. }
复制代码
switch 与 if 的选择


  • 使用场景:当判断的具体数值不多且符合 byte, short, int, char, enum, String 范例时,推荐使用 switch 语句。
  • 实用范围:对于区间判断和布尔范例的判断,使用 if 语句更为灵活。
通过上述内容,信赖你对 Java 中的 switch 语句有了更深入的明确。希望这篇文章能帮助你在编程中更加得心应手!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

渣渣兔

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表