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