关于switch的一些理解

switch 语句类似于具有同一个表达式的一系列 if 语句。很多场合下需要把同一个变量(或表达式)与很多不同的值比较,并根据它等于哪个值来执行不同的代码。这正是 switch 语句的用途。

使用switch 可以使代码显得更简洁。

如下:

$a = '2';
switch ($a){
    case 2 === $a:
        echo '(int) 2<br />';
        break;
    case '2' === $a:
        echo '(string) 2<br />';
        break;
    default:
        echo 'no';
        break;
}
输出:(string) 2

使用switch 有几个需要注意的点:

1. 每一个case之后应追加break;否则会进行连续判断。举个例子:

$a = '2';
switch ($a){
    case 2 === $a:
        echo '(int) 2<br />';
        break;
    case '2' === $a:
        echo '(string-1) 2<br />';
//        break;
    case 2 == $a:
        echo '(string-2) 2<br />';
        break;
    default:
        echo 'no';
        break;
}
输出:

(string-1) 2
(string-2) 2

2. 使用强类型判断,例子还是如上。 因PHP是弱类型语言,他会自动根据变量的值,自动把变量转换为正确

的数据类型。

请注意,不要因为上面的原因,造成不必要的困扰。

### Java 中 `switch` 语句详解 #### 基本概念 在Java中,`switch`语句是一种用于根据不同的条件执行不同代码块的流程控制语句。它能够替代多个`if-else`语句,从而使代码更加简洁和易于理解[^2]。 #### 使用场景 当存在多种可能的选择路径时,使用`switch`语句可以使程序逻辑更为直观。尤其适用于处理枚举类型、字符以及整数类型的判断情况[^3]。 #### 语法结构 以下是标准形式下的`switch`表达式的定义: ```java public void switchExample(int value){ switch(value){ case constant1 : // 当value等于constant1时执行此部分代码; break; case constant2 : // 当value等于constant2时执行此部分代码; break; ... default : // 如果以上所有case都不匹配,则执行这里的默认操作。 } } ``` 注意,在每个`case`分支之后通常会有一个`break`关键字用来终止当前case并跳出整个switch结构;如果没有设置break,则会发生“贯穿”,即继续向下执行直到遇到下一个break或结束大括号为止[^4]。 #### 实际案例分析 下面给出一段具体的例子来展示如何利用`switch`实现简单的数值转换功能: ```java public class NumberToWordConverter { private static final String[] words = {"Zero", "One", "Two"}; public static String convertNumberToWords(int number) { if(number >= 0 && number < words.length){ return switch (number) { // 自JDK 14起支持这种增强型写法 case 0 -> words[number]; case 1 -> words[number]; case 2 -> words[number]; default -> throw new IllegalArgumentException("Invalid input"); }; } else{ throw new IndexOutOfBoundsException("Index out of bounds."); } } public static void main(String args[]) { try { System.out.println(convertNumberToWords(1)); // 输出 One } catch(Exception e){ System.err.println(e.getMessage()); } } } ``` 上述代码展示了自 JDK 14 开始引入的一种新的`switch`表达式风格,其中箭头(`->`)代替了传统的冒号(:),并且可以直接返回值而不需要额外声明变量[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值