C/C++中的switch case 语句是怎样的一个执行过程
如switch(i){case1:……(要执行的语句)break;case2:……break;…………casen:……break;}i是从上往下逐个和1比较,在和2比较,...
如switch(i){case 1:……(要执行的语句)break;
case 2:……break;
…………
case n:……break;}
i是从上往下逐个和1比较,在和2比较,……直到找到符合的条件,才进入case后的执行语句的吗?这样的比较和if-elseif-else有什么不同吗?
还是有什么其他的比较方法,然后直接进入case语句执行……跳出。
小菜请高手指点! 展开
case 2:……break;
…………
case n:……break;}
i是从上往下逐个和1比较,在和2比较,……直到找到符合的条件,才进入case后的执行语句的吗?这样的比较和if-elseif-else有什么不同吗?
还是有什么其他的比较方法,然后直接进入case语句执行……跳出。
小菜请高手指点! 展开
5个回答
展开全部
你理解的是正确的,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语句就更加简洁直观,可读性也更强
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语句就更加简洁直观,可读性也更强
展开全部
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;
}
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-elseif-else,在实质上,也就是说,代码译成机器二进码后,也许根本就没有不同。
C语言的很多语句都是可以代用和换用的,之所以有多种写法,那只是为了程序员方便,也为了代码的可读性和可查对校正性。
就象我们生活中,对某事的描述可以用不同的词句一样。
事实上switch case就是对多分支的条件判断进行的方便性的写法。
C语言的很多语句都是可以代用和换用的,之所以有多种写法,那只是为了程序员方便,也为了代码的可读性和可查对校正性。
就象我们生活中,对某事的描述可以用不同的词句一样。
事实上switch case就是对多分支的条件判断进行的方便性的写法。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
关键点在你的break那里,如果不加的话,当i=1时,他会执行到i=2那一行才结束的,还有一种是最恶搞的goto语句,一般都很坑人的,你可以试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是的,就是你说的那样比较
这个比if看起来更直观,可读性也更强,尤其是情况比较多的时候
这个比if看起来更直观,可读性也更强,尤其是情况比较多的时候
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询