高手帮忙看下这道题啊

来源:百度知道 编辑:UC知道 时间:2024/06/06 08:42:27
main( )
{ char k; int i;
for(i=1;i<3;i++)
{ scanf("%c",&k);
switch(k)
{ case '0': printf("another\n");
case '1': printf("number\n");
}
}
}
程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是
anthoner
number
number
这是为什么??
这题目没问题,我想知道为什么是这个结果

第一次
case '0' 执行后输出 another ;但是后面没break退出switch,继续往下执行;输出number;
for 第二次。得到'1', case '1' 输出number ;

case后面要有break

case后没break;的话是不会跳出switch分支的,继续向下执行

把scanf("%c",&k)改成scanf("%c%c",&k),