这个程序运行后的结果为什么会是8,而不是6呢?求详细解答

int main()
{ int in=3,out=in;
switch(in)
{
case 3:out+=3;
case 2:out++;
case 1:
case 0:out++;break;
defult:out=0;
}
printf("%d\n",out); }

因为没有用break跳出循环,所以他会一直算下去。先算了等于6。没有break,继续加加7,再没有语句,下一个又加加8,遇到break,跳出,再输出8
#include<stdio.h>
int main()
{
int in=3,out=in;
switch(out)
{
case 3:out+=3;
case 2:out++;
case 1:
case 0:out++;break;
default:out=0;
}
printf("%d\n",out);
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-04-15
switch case 语句里的每个case后都要加break
不然的话会直接顺序运行
你这个程序里switch(3),所以会先运行case3,因为没有break,会继续运行case2 case1 case0
直到遇到break
相似回答