C#实训Day006:C#中if和switch语句的区别

2025-11-20 02:57:44

前面我们学习了控制流程语句,发现每种方法都有多种解决方式,在多分支语句有两种,一种是 if elseif,另一种是 switch。

那么在实际编程过程中,如何判断改用哪一种方法,他们之间有什么区别呢?这是今天小编要深入研究的问题。

C#实训Day006:C#中if和switch语句的区别

工具/原料

分支语句

方法/步骤

前面我们知道if控制语句和switch语句的都可以用于条件判断,那么他们各有什么特点呢。

if语句特点:

1.if都是单条语句,需要对表达式一个接一个比较的进行比较,所以每个条件都要计算一遍的。

C#实训Day006:C#中if和switch语句的区别

2.if只要判断表达式的bool值类型即可判断是否执行循环语句,无需考虑类型,灵活性比较好。

3.if匹配到满足条件的语句会直接实行方法,然后在执行下一段代码,无需跳转。

C#实训Day006:C#中if和switch语句的区别

switch语句特点:

1.switch语句使用查找表的方式决定了case的条件必须是一个连续的常量,且这个常量类型只有这四种类型:byte,short,int, char。

2.switch 只计算一次值表达式的值就可以进行判断循是否继续循环体,当满足条件时直接与case进行比对,无需在此进行判断,  不管有多少case,都直接跳转,不需逐个比较查询 。

C#实训Day006:C#中if和switch语句的区别

  3.  case之间与default没有顺序。先执行第一个case,没有匹配

的case就执行default。

    4.结束switch语句的两种情况:遇到break,执行到switch语句

结束。

C#实训Day006:C#中if和switch语句的区别

如果匹配的case或者default没有对应的break,那么程序会

继续向下执行,运行可以执行的语句,直到遇到break或者switch结

尾才会结束,所以每个case中务必加上break语句。

总结:

1.当表达式类型是byte,short,int, char之外的需使用if语句

2.当分支比较少的时候,可以使用if语句(因为switch有跳转表)  

3.switch使用了Binary Tree算法,绝大部分情况下switch会快效率高,当分支较多的时候我们使用switch。

4.switch对较复杂的表达式进行数值判断比较简单快捷,这时候可以使用switch较好。

C#实训Day006:C#中if和switch语句的区别

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢