深入理解switch语句的多种用法

作者:宁德淘贝游戏开发公司 阅读:87 次 发布时间:2023-05-15 16:27:16

摘要:  switch语句是Java编程语言中一个常用的控制语句,它可以根据不同的情况执行不同的代码块。在Java程序中,switch语句通常用于多分支情形,可以简化if语句的判断逻辑,提高代码效率。本文将深入探讨switch语句的多种用法,帮助读者更好地掌握该语句。  一、基本用法  s...

  switch语句是Java编程语言中一个常用的控制语句,它可以根据不同的情况执行不同的代码块。在Java程序中,switch语句通常用于多分支情形,可以简化if语句的判断逻辑,提高代码效率。本文将深入探讨switch语句的多种用法,帮助读者更好地掌握该语句。

深入理解switch语句的多种用法

  一、基本用法

  switch语句的基本语法为:

  ```

  switch(variable) {

   case value1:

   //执行代码块1

   break;

   case value2:

   //执行代码块2

   break;

   ...

   default:

   //默认代码块

   break;

  }

  ```

  其中,

  - variable:为变量表达式,可以是整型、字符、枚举等类型的值。

  - case:为常量表达式,与variable进行比较,满足条件则执行相应代码块。

  - default:为可选语句块,当所有case都不满足时,执行默认代码块。

  实例代码如下所示:

  ```

  int num = 3;

  switch (num) {

   case 1:

   System.out.println("星期一");

   break;

   case 2:

   System.out.println("星期二");

   break;

   case 3:

   System.out.println("星期三");

   break;

   case 4:

   System.out.println("星期四");

   break;

   case 5:

   System.out.println("星期五");

   break;

   default:

   System.out.println("非法输入");

   break;

  }

  ```

  在运行上述代码时,将输出“星期三”。

  二、多值情况

  有时候,我们需要在多个值中选择执行相同的代码块。可以使用枚举类型或者多个case语句来实现。

  1.使用枚举类型

  先定义一个Enum类型:

  ```

  enum Weekday {

   Monday,

   Tuesday,

   Wednesday,

   Thursday,

   Friday,

   Saturday,

   Sunday

  }

  ```

  接着使用switch语句:

  ```

  Weekday day = Weekday.Wednesday;

  switch (day) {

   case Monday:

   System.out.println("星期一");

   break;

   case Tuesday:

   System.out.println("星期二");

   break;

   case Wednesday:

   case Thursday:

   case Friday:

   System.out.println("工作日");

   break;

   case Saturday:

   case Sunday:

   System.out.println("周末");

   break;

   default:

   System.out.println("非法输入");

   break;

  }

  ```

  运行上述代码,将输出“工作日”。

  2.使用多个case语句

  ```

  int num = 3;

  switch (num) {

   case 1:

   System.out.println("星期一");

   break;

   case 2:

   System.out.println("星期二");

   break;

   case 3:

   case 4:

   case 5:

   System.out.println("工作日");

   break;

   case 6:

   case 7:

   System.out.println("周末");

   break;

   default:

   System.out.println("非法输入");

   break;

  }

  ```

  运行上述代码,将输出“工作日”。

  三、穿透

  在使用switch语句时,我们有时候需要让某个case块落空,执行下一个case块的代码,这就是所谓的“穿透”。在Java编程语言中,可以通过省略break语句来实现穿透。

  示例代码如下

  ```

  int num = 6;

  switch (num) {

   case 1:

   case 2:

   case 3:

   case 4:

   case 5:

   System.out.println("工作日");

   break;

   case 6:

   case 7:

   System.out.println("周末");

   break;

   default:

   System.out.println("非法输入");

   break;

  }

  ```

  运行上述代码,将输出“周末”。

  四、特殊用法

  除了上述基本用法和常见情形,switch语句还有一些特殊用法需要掌握。

  1.表达式支持字符串常量

  在JDK1.7以后的版本中,switch语句支持字符串常量,可以使用字符串来判断不同的情况。

  示例代码

  ```

  String str = "Java";

  switch (str) {

   case "Java":

   System.out.println("Java编程");

   break;

   case "Python":

   System.out.println("Python编程");

   break;

   default:

   System.out.println("非法输入");

   break;

  }

  ```

  运行上述代码,将输出“Java编程”。

  2.表达式支持枚举类型

  除了整型、字符型、字符串型等基本类型,switch语句还可以使用枚举类型作为表达式类型。

  示例代码

  ```

  enum Size {

   SMALL,

   MEDIUM,

   LARGE

  }

  Size size = Size.MEDIUM;

  switch (size) {

   case SMALL:

   System.out.println("小号");

   break;

   case MEDIUM:

   System.out.println("中号");

   break;

   case LARGE:

   System.out.println("大号");

   break;

   default:

   System.out.println("非法输入");

   break;

  }

  ```

  运行上述代码,将输出“中号”。

  3.表达式支持布尔类型

  在JDK1.7以后的版本中,switch语句还支持布尔类型的表达式。需要注意的是,该表达式的取值必须为true或false,也就是说,只有两种情形。

  示例代码

  ```

  boolean flag = true;

  switch (flag) {

   case true:

   System.out.println("真");

   break;

   case false:

   System.out.println("假");

   break;

  }

  ```

  运行上述代码,将输出“真”。

  五、总结

  通过对Java switch语句的深入理解,读者应该已经掌握了该语句的多种用法,包括基本用法、多值情况、穿透和特殊用法等方面。在实际编程中,根据具体情况选择不同的用法,可以提高代码效率,简化代码结构,提高程序质量。

  • 原标题:深入理解switch语句的多种用法

  • 本文链接:https://qipaikaifa1.com/tb/2117.html

  • 本文由宁德淘贝游戏开发公司小编,整理排版发布,转载请注明出处。部分文章图片来源于网络,如有侵权,请与淘贝科技联系删除。
  • 微信二维码

    CTAPP999

    长按复制微信号,添加好友

    微信联系

    在线咨询

    点击这里给我发消息QQ客服专员


    点击这里给我发消息电话客服专员


    在线咨询

    免费通话


    24h咨询☎️:189-2934-0276


    🔺🔺 棋牌游戏开发24H咨询电话 🔺🔺

    免费通话
    返回顶部