switch语句及其注意事项

本文详细介绍了switch语句的语法、语义及其注意事项,包括穿透问题的解决技巧和与if语句的互换使用。同时强调了避免常见的错误,并提供了实际应用中的优化建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

switch语句及switch注意事项

  

switch语句

 

   switch语法:

           switch(表达式){

 

 

               case 常量表达式1:

                   语句块1

                   break;

               

                case 常量表达式2:

                    语句块2

                    break;

 

                case 常量表达式3:

                    语句块3

                    break;

                ………………

               

                default:

                    语句块n

                    break;

           }

 

    语义:先得出表达式的结果,根据结果跳转到相应的case语句块里面去执行

 

               表达式结果  == 常量表达式  就叫相应的case语句块

 

               如果case 后面的常量表达式没有一个跟表达式结果对应的

 

               那么就跳转到 default里面执行语句块n

 

 

 

 switch语句的穿透问题:

 

       case块里面不加break的时候,会发生穿透

 

       穿透意思:就是从这个case块里面执行完语句后,会继续跳到下一个case块里面继续执行

 

       所以,我们必须加break,防止穿透

 

       break可以跳出当前的switch语句

 

       穿透问题的技巧:可以利用穿透将同一结果的case放在一起,类似于if(表达式)中使用||。

例:

 switch语法:

            switch(表达式){

 

 

                case 常量表达式1:

                                                   

                case 常量表达式2:

                                   

                case 常量表达式3:

                    语句块1

                    break;

                 case 常量表达式4:

                                                   

                case 常量表达式5:

                                   

                case 常量表达式6:

                    语句块2

                    break;

 

                ………………

               

                default:

                    语句块n

                    break;

           }

 

 

 

switch语句需要注意的地方:

 

   1.switch语句后面的小括号只能写整数类型的表达式,否则会报错

 

   2.case后面只能接常量表达式

 

   3.case后面的常量表达式不能有重复的值

 

   4.switch小括号后面不要加分号,可以加分号加在大括号后面

 

   5.case后面不能立即声明变量,除非在声明前面加一条或者N条语句

 

   6.非要在 case后面立即声明变量怎么办??那么就在case块里面加一个大括号

 

   7.如果不加大括号声明的变量,其他case块也可以访问

 

   8.default可以写在任意位置,不影响结果

 

 

 

if 语句与switch语句的互换:

 

任何可以用if语句实现的功能,绝对也可以用switch语句来实现,同样用switch语句可以做得东西,if也完全可以

  

 如果要判断范围的话用if比较方便,用switch比较麻烦,不能直接用

 

 如果是判断具体的某个值,并且值不是很多的时候用switch方便和简洁


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值