打印
[其它产品/技术]

switch语句的工作原理

[复制链接]
2182|64
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
LOVEEVER|  楼主 | 2024-2-19 20:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
switch语句的工作原理如下:

执行表达式:首先,计算switch语句后面的表达式的值。
匹配case:将表达式的值与每个case标签进行比较,如果匹配成功,则执行与该case标签关联的代码块。如果没有匹配到任何case标签,将执行default标签下的代码块(如果有的话)。
执行代码块:一旦找到匹配的case标签,将执行与该标签关联的代码块。在执行代码块后,程序将继续执行switch语句后面的代码,除非遇到break语句或者switch语句结束。
「语法结构:」

switch (expression) {
  case constant1:
    // code to be executed if expression equals constant1;
    break;
  case constant2:
    // code to be executed if expression equals constant2;
    break;
  ...
  default:
    // code to be executed if expression doesn't match any constants;
}

「示例:」

int day = 3;
switch(day) {
  case 1:
    printf("Monday\n");
    break;
  case 2:
    printf("Tuesday\n");
    break;
  case 3:
    printf("Wednesday\n");
    break;
  default:
    printf("Other day\n");
    break;
}

在上面的示例中,当day的值为3时,将匹配到case 3,然后执行与之关联的代码块,输出"Wednesday"。

使用特权

评论回复
沙发
EmmaTT| | 2024-2-28 20:35 | 只看该作者
default不加是不是就直接退出了

使用特权

评论回复
板凳
Annie556| | 2024-3-29 10:26 | 只看该作者
switch语句是一种在编程中用于根据不同条件执行不同代码块的控制流语句

使用特权

评论回复
地板
Betty996| | 2024-3-29 11:31 | 只看该作者
一般是计算出switch括号中表达式的值,然后进行判断

使用特权

评论回复
5
Charlotte夏| | 2024-3-29 12:35 | 只看该作者
将这个值与每个case标签中的值进行比较,寻找与表达式值相匹配的case标签

使用特权

评论回复
6
Alina艾| | 2024-3-29 13:40 | 只看该作者
一般是一旦找到匹配的case标签,程序将执行该case标签下的代码块,直到遇到break语句或者switch语句结束

使用特权

评论回复
7
Estelle1999| | 2024-3-29 14:53 | 只看该作者
其实我觉得就是switch是一个框架,很好用

使用特权

评论回复
8
Carmen7| | 2024-3-29 16:08 | 只看该作者
如果没有找到匹配的case标签,程序将执行default标签下的代码块(如果有的话),或者直接跳出switch语句

使用特权

评论回复
9
Betty1299| | 2024-3-29 17:14 | 只看该作者
这不是正常的C语言的标准操作吗

使用特权

评论回复
10
Emily999| | 2024-3-30 06:13 | 只看该作者
其实,switch好像算是轮询的操作吧

使用特权

评论回复
11
Carina卡| | 2024-3-30 07:24 | 只看该作者
一般都是使用switch操作,比较好用

使用特权

评论回复
12
alxd| | 2024-3-30 09:10 | 只看该作者
要是判断的多的话,用switch case的话,语句会比较简洁

使用特权

评论回复
13
IFX-Wanmin| | 2024-5-27 16:28 | 只看该作者
从可扩展性看,Switch Case比If语句好

使用特权

评论回复
14
小小蚂蚁举千斤| | 2024-5-31 16:20 | 只看该作者
Switch Case扩展性强,比其他的更好用

使用特权

评论回复
15
abotomson| | 2024-6-5 10:52 | 只看该作者
当 switch 语句被执行时,首先会评估 switch 后面的表达式(通常是一个变量或一个返回值的表达式)。这个表达式的值(通常称为“case 值”)将用于确定接下来要执行哪个 case 分支。

使用特权

评论回复
16
dspmana| | 2024-6-5 13:15 | 只看该作者
switch语句是一种多路分支控制结构,它允许程序根据一个变量或表达式的值来选择执行多个代码段中的一个。

使用特权

评论回复
17
51xlf| | 2024-6-7 08:28 | 只看该作者
当找到匹配的 case 标签时,程序会执行从该标签开始的代码,直到遇到 break 语句或 switch 语句结束。如果某个 case 分支中没有 break 语句,那么程序将继续执行下一个 case 分支的代码,直到遇到 break 语句或 switch 语句结束。

使用特权

评论回复
18
linfelix| | 2024-6-7 12:06 | 只看该作者
当找到一个与表达式值匹配的case时,switch 语句就会执行该case标签后的代码块。如果没有break语句,执行会继续到下一个case(称为“fall through”现象),直到遇到break语句或者执行完所有的case。如果所有case的值都没有与表达式值匹配,则执行default标签(如果存在)后的代码块。

使用特权

评论回复
19
sanfuzi| | 2024-6-7 15:57 | 只看该作者
执行完相应的代码块后,switch语句结束,控制流继续执行switch语句之后的代码。

使用特权

评论回复
20
everyrobin| | 2024-6-7 19:39 | 只看该作者
switch 语句开始时,会首先计算紧跟在其后的括号内的表达式的值。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

291

主题

1900

帖子

4

粉丝