Switch语句比if语句有什么好处

2020-11-22 08:14:52 字数 5521 阅读 4684

1楼:古树上的毛毛虫

这样说吧switch语句是为了简化if的流程分支,简化一部分**。但是既然是简化部分,功能就会稍微有点欠缺。举个例子:

int i=9;

if(8==i)

cout<<"zhao"<

else if(7==i)

cout<<"qian"<

else if(4==i)

cout<<"sun"<

else if(1==i)

cout<<"li"<

else if(0==i)

cout<<"zhou"<

else if(19==i)

cout<<"wu"<

对于:int i=9;

switch(i)

switch中的i的定义相对来说比较有限,i的类型只能是基本类型:int char等

但是if就没有那么多限制。

权衡利弊,往往需要自己斟酌使用。利弊相依。呵呵

2楼:乱在长安

条理清楚,**效率高。

3楼:薛摆渡

switch是多分枝选择结构,是处理多条支路问题的。而if只能在两项之间选择,很麻烦!

什么情况下,switch语句可以替代if语句? 5

4楼:自我编程

正常情况两者通用

条件特别多时,switch比if/else效率高

5楼:匿名用户

当条件有两个的时候,可以if代替,当大于等于3个的时候用switch就比较方便了。

switch语句比起ifelse语句有哪些优势?

6楼:手机用户

在大多数情况下,switch的性能不会比ifelse低。

在某些特定情况下,编译器能对switch进行优化。比如说:

1.不按顺序比较,而是构造一个二分查找树(binarydecisiontree),这样子比较的平均次数就会下降。

2.可以做个跳转表(jumptable)这样子就不许要任何比较了。

c语言中switch和if的适用方面有什么区别

7楼:匿名用户

switch语句,可读性更好,整体流程看起来清晰明确。

if语句适应性更强,可以处理更多的情况。

所有的switch语句都可以写成if的形式,比如switch(a)

可以写作

if(a==b)//case b

else if(a==c) // case celse //default.

但是switch 语句,仅能够处理整型数值,即switch()括号中的判断的值,必须是整型的,而且每个case后面跟的值,也必须是整型的。

另外,对于大规模的连续数值,比如if(a>=1 && a<=100) 这样的语句,要用switch则需要连续写100个case,这种情况下,switch语句也是不适用的。

总体来说,对于散列的整型数据,用switch语句更清晰明确,而对于其它情况,if语句则更好。

8楼:大

switch语句只能根据一个变量的值进行转移,但if语句没有这样的限制。当然,判断一个条件比判断一堆条件速度要快的多。 个人觉得生成的汇编的**,switch生成的是一系列的条件判断和转移指令,但if语句没有这样做

9楼:疯狗滚

if 用于单一的是非条件判断 if else 用于两种情况的条件判断 switch: case 用于多种情况的条件判断,这些情况是并列关系。 多个if连用 用于连环条件判断,这些条件是串联关系。

前一个if的成立,是后一个if进行判断的必须条件。

10楼:炫柒神帲

看情况。 if判断条件,处理逻辑表达式。 switch 通常处理算术表达式,或字符,当它等于什么什么,转向做什么。

switch相当开关 如果“比较整数”,i1 是否大于 i2, 当然用if 如果决定转向,例如 i=1 画直线,i=2 画曲线,i=3 画圆,i=4 画虚线直线, i=5 画虚线曲线, i=6 画长方形 i=其他值 返回重选 这当然用switch,switch 执行快 from:http://wenwen.

soso.***/z/q80249792.htm?

ch=w.xg.llyjj

11楼:浮云

switch用于多条件选择, 而if套用太多会把程序变得很复杂.

12楼:手机用户

if()可以判断一个范围, switch可以判断更确切, 当然if也可单个来控制, if要比switch强..也更常用.

if判断语句快还是switch快

13楼:凉念若櫻花妖娆

if语句每次都需要判断,而switch则只判断一次,所以switch快,但也要看情况,一般5个选项(包括default)的情况下,switch和if/else if相同。低于5个选项if快,高于5给选项switch快。

1 两者本质的区别是if语句更适合于对区间(范围)的判断,而switch语句更适合于对离散值的判断。

2 示例

判断65分到85分之间的学生有哪些适合用if语句,因为[65,85]是区间。而判断一个学生的班级是一班、二班还是三班适合用switch语句,因为一班、二班、三班是离散值。

3 扩展

所有的switch语句都可以用if语句来替换(因为if语句只需对每个离散值分别做判断即可),而并不是所有的if语句都可以用switch语句来替换(因为区间里值的个数是无限的并且switch所接受的值只能是整型或枚举型,所以不能用case来一一列举)。

14楼:匿名用户

简单的语句,if快,如果包涵复杂嵌套,那就不如后者了。

15楼:匿名用户

那还真不知道没测试过!但是if 简洁些 switch 看了反正我看了不舒服。过程上 switch 少了几步理论上快些

c语言中if和switch有什么区别?

16楼:

if和switch的主要区别如下:

1)if的括号内的表达式可以分别是布尔类型的合法表达式、可以是所有大于0的正整数为true,反之为小于等于0的正整数为false、可以是常量、枚举;而switch括号内也符合前面if提到的外,就是当圆括号内为正整数只能是0或1,其它的正整数属于 default范围。这点可以看如下**:

switch(2)//除了0和1的其它正整数2)尽管if括号内也支持常量、枚举但也是有前提的那就是常量或枚举必须要显式给出相应的数值。而switch则不必;

3)switch适合处理判断分支较多的情况下(**可读性好),而if适合处理判断分支较少的情况下(反之**可读性差,容易出现漏判或重复判断)。

17楼:匿名用户

看情况。

if判断条件,处理逻辑表达式。

switch 通常处理算术表达式,或字符,当它等于什么什么,转向做什么。switch相当开关

如果“比较整数”,i1 是否大于 i2, 当然用if如果决定转向,例如 i=1 画直线,i=2 画曲线,i=3 画圆,i=4 画虚线直线, i=5 画虚线曲线, i=6 画长方形 i=其他值 返回重选

这当然用switch,switch 执行快。

18楼:洛雨曦

switch( 表达式)//这个地方不能加分号,表达式必须是字符型或整型

执行过程:

一、计算

二、找case

三、从找到的case开始,往下全部执行

四、若没找到case,则从default开始往下全部执行,若没default则结束switch语句。

if是选择结构,有三个形式,它们执行是条件成立只会选一个执行。

第一个:if (表达式)

语句;第二个:if (表达式)

语句1;

else

语句2;

第三个:

if ( 表达式1 )

语句1;

else if (表达式2 )

语句2;

else if (表达式3 )

语句3;

…...

[ else

语句; ]

19楼:百an居

if 直接是选择的意思

如果(),执行()

否则,()

永远是否则后面没有条件,而且if 和 else 成对出现switch 可以是多项选择且直接跳转

switch a : a

b : b

c : c

等等这两个差很多~

你可以再仔细看看书

能用到switch 语句的话,用if 就很繁琐但是简单的选择用if 比较好了

希望能帮到你哦,请您采纳,刚刚玩,在做任务

20楼:匿名用户

使用的语句不一样呀,if的条件更多一些,switch后面必须有case 而且cas后面必须是规定的三种类型的数据!

21楼:匿名用户

if 可以代替switch使用,而switch不一定能代替

在效率方面,条件多的时候用switch比if好

22楼:楼三龙骊颖

楼上的if

只能判断两种吗?

那我问你

if(a=="a")

else

if(a=="b")

else

if(a=="c")

这个你怎么说

不懂别装懂好不

switch语句只能根据一个变量的值进行转移,但if语句没有这样的限制。当然,判断一个条件比判断一堆条件速度要快的多。

个人觉得生成的汇编的**,switch生成的是一系列的条件判断和转移指令,但if语句没有这样做

if语句和switch有什么不同?

23楼:手机用户

if和switch都是条件判断语句,在效果上是没有什么差别的,而不同,我们可以从效率上来讲~ 举一个很简单的例子: if(a>b) else 如果将这个例子放在switch 语句中,也并不是不能实现,但是实现起来可能会比较麻烦一些,因为在switch语句中 case中要求的是常量,一般是不能进行逻辑判断的, 所以这也是if语句优于switch语句的地方! 但是如果您判断的都是几个常量的数据,我建议您最好采用switch语句,如下:

switch(a) http://****csdnit.

***/ 这样的语句,虽然if语句也是能实现的,但是性能就比switch差的有点远了求采纳

对于if语句和switch的优缺点进行分析

24楼:7度幻殇

switch的底层基本也是用if来去实现的 ,只不过switch在条件较多的情况下,美观度高 可识别程度也高

表示年龄的语句有什么,形容女人年龄的语句有哪些?

1楼 心诚则灵 古代表示年龄的词语 黄童 幼童头发黄色,故以 黄童 称谓幼年儿童。 黄童白叟,踊跃欢呀。 韩愈《元和圣诗》 绿鬓 青少年头发乌黑发亮,所以用 绿鬓 代称青少年。 沉复落红颜,蝉声摧绿鬓。 唐代乔知之《从军行》 颁白 头发花白, 颁 通 斑 ,用 斑白 称代老年。 颁白者不负戴于道路矣...

形容平平淡淡的语句或诗句有哪些,形容平平淡淡的语句或诗句?

1楼 残雪的枫林 1 生活是一杯水。杯子的华丽与否显示了一个人的贫 与富。但杯子里的水清澈透明,无色无味,对任何人都一样。接下来,你有权利加盐加糖,只要你喜欢。 2 想和你一起浅浅淡淡的生活,分享每一天的平凡,每一刻的幸福,感动,每一秒的丝丝甜蜜。我不知道这算不算奢求,反正我也早就习惯了奢求。 3 ...

形容华尔兹优美的语句有哪些,赞美“华尔兹”的句子有哪些?

1楼 玉石磊石 1 那踏节的盘和鼓已经摆好,舞人从容而舞,形舒意广。 2 纤细的罗衣从风飘舞,缭绕的长袖左右交横。络绎不绝的姿态飞舞散开,曲折的身段手脚合并。 3 清颜白衫,青丝墨染,彩扇飘逸,若仙若灵,水的精灵般仿佛从梦境中走来。 4 柳腰轻,莺舌啭。逍遥烟浪谁羁绊。无奈天阶,早已催班转。却驾彩鸾...