[其它产品/技术] switch语句的工作原理

[复制链接]
 楼主| LOVEEVER 发表于 2024-2-19 20:41 | 显示全部楼层 |阅读模式
switch语句的工作原理如下:

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

  1. switch (expression) {
  2.   case constant1:
  3.     // code to be executed if expression equals constant1;
  4.     break;
  5.   case constant2:
  6.     // code to be executed if expression equals constant2;
  7.     break;
  8.   ...
  9.   default:
  10.     // code to be executed if expression doesn't match any constants;
  11. }

「示例:」

  1. int day = 3;
  2. switch(day) {
  3.   case 1:
  4.     printf("Monday\n");
  5.     break;
  6.   case 2:
  7.     printf("Tuesday\n");
  8.     break;
  9.   case 3:
  10.     printf("Wednesday\n");
  11.     break;
  12.   default:
  13.     printf("Other day\n");
  14.     break;
  15. }

在上面的示例中,当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括号中表达式的值,然后进行判断
Charlotte夏 发表于 2024-3-29 12:35 | 显示全部楼层
将这个值与每个case标签中的值进行比较,寻找与表达式值相匹配的case标签
Alina艾 发表于 2024-3-29 13:40 | 显示全部楼层
一般是一旦找到匹配的case标签,程序将执行该case标签下的代码块,直到遇到break语句或者switch语句结束
Estelle1999 发表于 2024-3-29 14:53 | 显示全部楼层
其实我觉得就是switch是一个框架,很好用
Carmen7 发表于 2024-3-29 16:08 | 显示全部楼层
如果没有找到匹配的case标签,程序将执行default标签下的代码块(如果有的话),或者直接跳出switch语句
Betty1299 发表于 2024-3-29 17:14 | 显示全部楼层
这不是正常的C语言的标准操作吗
Emily999 发表于 2024-3-30 06:13 | 显示全部楼层
其实,switch好像算是轮询的操作吧
Carina卡 发表于 2024-3-30 07:24 | 显示全部楼层
一般都是使用switch操作,比较好用
alxd 发表于 2024-3-30 09:10 | 显示全部楼层
要是判断的多的话,用switch case的话,语句会比较简洁

IFX-Wanmin 发表于 2024-5-27 16:28 | 显示全部楼层
从可扩展性看,Switch Case比If语句好
小小蚂蚁举千斤 发表于 2024-5-31 16:20 | 显示全部楼层
Switch Case扩展性强,比其他的更好用
abotomson 发表于 2024-6-5 10:52 | 显示全部楼层
当 switch 语句被执行时,首先会评估 switch 后面的表达式(通常是一个变量或一个返回值的表达式)。这个表达式的值(通常称为“case 值”)将用于确定接下来要执行哪个 case 分支。
dspmana 发表于 2024-6-5 13:15 | 显示全部楼层
switch语句是一种多路分支控制结构,它允许程序根据一个变量或表达式的值来选择执行多个代码段中的一个。
51xlf 发表于 2024-6-7 08:28 | 显示全部楼层
当找到匹配的 case 标签时,程序会执行从该标签开始的代码,直到遇到 break 语句或 switch 语句结束。如果某个 case 分支中没有 break 语句,那么程序将继续执行下一个 case 分支的代码,直到遇到 break 语句或 switch 语句结束。
linfelix 发表于 2024-6-7 12:06 | 显示全部楼层
当找到一个与表达式值匹配的case时,switch 语句就会执行该case标签后的代码块。如果没有break语句,执行会继续到下一个case(称为“fall through”现象),直到遇到break语句或者执行完所有的case。如果所有case的值都没有与表达式值匹配,则执行default标签(如果存在)后的代码块。
sanfuzi 发表于 2024-6-7 15:57 | 显示全部楼层
执行完相应的代码块后,switch语句结束,控制流继续执行switch语句之后的代码。
everyrobin 发表于 2024-6-7 19:39 | 显示全部楼层
switch 语句开始时,会首先计算紧跟在其后的括号内的表达式的值。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

342

主题

2619

帖子

6

粉丝
快速回复 在线客服 返回列表 返回顶部