switch代码分析

来源:互联网 发布:最好的理财软件 编辑:程序博客网 时间:2024/05/21 09:53

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处理方法。

原创粉丝点击