> For the complete documentation index, see [llms.txt](https://ubtechedu.gitbook.io/chinese/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ubtechedu.gitbook.io/chinese/arduino-language/structure/control-structure/switch-case.md).

# switch...case

和 if 语句相同，switch…case通过程序员设定的在不同条件下执行的代码控制程序的流程。

特别地，switch语句将变量值和case语句中设定的值进行比较。当一个case语句中的设定值与变量值相同时，这条case语句将被执行。

关键字break可用于退出switch语句，通常每条case语句都以break结尾。如果没有break语句，switch语句将会一直执行接下来的语句（一直向下）直到遇见一个break，或者直到switch语句结尾。

### 语法 <a href="#yu-fa" id="yu-fa"></a>

```c
switch (var) {
    case label:  
        // 声明  
        break;
    case label:  
        // 声明  
        break;
    default:   
        // 声明
}
```

### 参数 <a href="#can-shu" id="can-shu"></a>

| 参数名   | 描述                     |
| ----- | ---------------------- |
| var   | 用于与下面的case中的标签进行比较的变量值 |
| label | 与变量进行比较的值              |

### 例子 <a href="#li-zi" id="li-zi"></a>

```c
switch (var) {case 1:  //当var等于1时，执行一些语句  break;case 2  //当var等于2时，执行一些语句  break;default:   //如果没有任何匹配，执行default  //default可有可不有}
```
