MENU

Java-10 switch-case结构

August 11, 2023 • Read: 82 • Java阅读设置

Java基本语法

switch-case结构

2023-08-11T02:31:21.png

  • 根据switch表达式中的值,依次匹配各个case中的常量。一旦匹配成功,则执行相应case中的执行语句。当执行完对应的执行语句后,则仍然向下继续执行剩余的其他case中的执行语句(此时不需要匹配成功,无差别直接执行),直到遇到break关键字,或该switch-case结构结束为止。
    由此可以这样理解switch-case不是一个标准的分支结构,而是根据switch表达式选择从哪节枝干开始往下运行。
    2023-08-11T02:40:09.png
  • break关键字,可以使用在switch-case结构中,表示跳出switch-case结构。
    并且break关键字是可选的。
    2023-08-11T02:41:10.png
  • switch结构中的表达式所表示的值,只能是以下6种数据类型之一:byte, short, char, int, 枚举(JDK 5.0新增), String(JDK 7.0新增),即在JDK5.0之前的switch结构中的表达式所表示的值只能是前4种数据类型之一。
    2023-08-11T02:49:13.png
    2023-08-11T02:54:03.png
  • 'case'之后只能声明常量,不能声明变量或范围。
    2023-08-11T02:58:29.png
    2023-10-27T02:57:08.png
  • default相当于if-else结构中的else,表示默认值。
    default结构也是可选的,而且位置是灵活的,但不推荐改变位置,如果没有break容易出错。
    2023-08-11T03:06:29.png

Switch-case习题

  • 第一题:
    2023-08-11T03:09:18.png
    说明:键盘无法直接获取字符类型,因此先获取字符串,再用String.charAt(int index)方法转换为字符类型。
    2023-08-11T03:16:41.png
  • 第二题:
    2023-08-11T03:17:26.png
    说明:

    • 如果是关于要判断一个范围的问题,并且用switch-case结构,从缩少case结构入手,通常就是通过整除,将问题范围缩小。
    • 如果switch-case结构中的多个case的执行语句相同,则可以进行省略合并。实际上逻辑并没有变,相当于有的case的执行语句为不需要执行任何东西,然后也没有break,因此就往下顺,直到一条执行语句或break
      2023-08-11T03:27:38.png
      2023-08-11T03:29:55.png
  • 第三题:
    2023-08-11T03:40:02.png
    2023-08-11T03:43:52.png
  • 第四题:
    2023-08-11T03:44:34.png
    说明:

    • 找解题思路时,可以先代入具体的值,然后思考自己怎么解,再想用代码怎么实现。
    • break是可选的。
      2023-08-11T03:57:39.png
  • 第五题:
    2023-08-11T03:58:53.png
    2023-08-11T04:04:11.png

switch-case与if-else

  • 凡是可以使用switch-case的结构,都可以转换为if-else。反之,不成立。因为switch-case表达式有限制,比如浮点型、布尔型都不能用。
  • 在使用分支结构时,若情况既能使用switch-case又能使用if-else,并且使用switch-case取值情况并不多,优先选择使用switch-case。因为switch-case执行效率稍高。
Last Modified: October 27, 2023