看看这个switch()
#include <stdio.h>
main()
{
char k;
int i,sum=2;
for(i=1;i <3;i++)
{
scanf( "%c ",&k);
switch(k)
{
case '0 ':sum++;
case '1 ':sum+=3;
}
}
printf( "%d ",sum);
getch();
}
敲入01回车后为什么是9?注意01中没有空格.请达人留下正解!
[解决办法]
scanf( "%c ",&k);
switch(k)
{
case '0 ':sum++; // 因为输入0时sum++:sum 为3, 此时因为没有break语句,所以继续执行下一句的sum += 3: sum为6.
case '1 ':sum+=3; // 输入1是,执行这一句sum += 3: sum 为9,for循环结束.
}
如果想每输入一个只执行一外语句,那么就在每个条件后都加上一句break;如下:
scanf( "%c ",&k);
switch(k)
{
case '0 ':sum++; break;
case '1 ':sum+=3; break;
}