switch代码分析

switch(type)

{

    case 0:

        strcpy(btext[1],selType[type]);

   case 1:

       strcpy(btext[1],selType[type]);

  case  2:

      strcpy(btext[1],selType[type]);

}

 

switch(type)

{

    case 0:

          strcpy(btext[2],GetString(IDS_FE_NO));

   case  1:

          strcpy(btext[2],GetString(IDS_FE_YES));

}

 

上述的两段代码是在工作时,无意写出的,目的大于根据相应的type的值,将相应的值赋给btext[i];其中,第一个switch能很好的完成这个任务;但第二个switch总是显示的是IDS_FE_YES的值。

   造成这种差距的原因在于,case执行时,会从匹配值处一直执行下去,第一个switch无论从何处开始执行,其btext[1]的值总是selType[type]的值,但第二个swicth,不同的type,赋给btext[2]的是不同的值,到最后,btext[2]的值将是最后一个case字符串中的值。

   解决办法:每个case 后加break语句,截流。

 

 

  注意:一般在最后要加上default处理方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值