C⼀C++中的switch case 语句是怎样的一个执行过程

2025-03-03 06:41:36
推荐回答(5个)
回答1:

你理解的是正确的,switch case语句完全可以用if else语句来替换掉;但是当比较较多 或者很多其他控制流程的时候,switch语句 的可读性比if else语句高的多;另外注意的就是 一般情况下每一个case 之后都要跟一个break; 其目的是为了跳出switch语句块去执行switch后边的语句;但是实际项目中多出现这种情况
switch(i)
{
case 1:
case 3:
case 5:
……; //这里当i等于 1 3 5 时都会执行
break;//直到这里退出
case 2:
(1)……;
case 4:
(2)……;
case 6:
(3)……;//这里i 等于2时会执行(1)(2)(3); i 等于4时会执行(2)(3); 等于6时只会执行(3)
break;
case 9:
break;
default:
break;
}
类似于上边的这种逻辑 如果用if else语句控制起来就会很麻烦,且可读性太差,而用switch语句就更加简洁直观,可读性也更强

回答2:

c语言中switch语句中,只要不出现break,所有满足条件的,都会将结果输出。举例如下:
switch(i)
{
case 1:
case 3:
case 5:
……; //这里当i等于 1 3 5 时都会执行
break;//直到这里退出
case 2:
(1)……;
case 4:
(2)……;
case 6:
(3)……;//这里i 等于2时会执行(1)(2)(3); i 等于4时会执行(2)(3); 等于6时只会执行(3)
break;
case 9:
break;
default:
break;
}

回答3:

基本等效于if-elseif-else,在实质上,也就是说,代码译成机器二进码后,也许根本就没有不同。

C语言的很多语句都是可以代用和换用的,之所以有多种写法,那只是为了程序员方便,也为了代码的可读性和可查对校正性。
就象我们生活中,对某事的描述可以用不同的词句一样。

事实上switch case就是对多分支的条件判断进行的方便性的写法。

回答4:

关键点在你的break那里,如果不加的话,当i=1时,他会执行到i=2那一行才结束的,还有一种是最恶搞的goto语句,一般都很坑人的,你可以试试

回答5:

是的,就是你说的那样比较
这个比if看起来更直观,可读性也更强,尤其是情况比较多的时候