您的位置:首页 > 编程语言

switch代码分析

2010-05-05 21:42 155 查看
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处理方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: