C语言小问题1

来源:百度知道 编辑:UC知道 时间:2024/06/25 21:05:12
#include<stdio.h>
main()
{int n=0;
while(n<4)
switch(n)
{case0:
case1:printf("%d,",n);
case2:printf("%d,",n++");break;
default:printf("*");n++;}}
0,0,1,1,2,*
为什么会输入两个0,两个1

("%d,",n++");多了个“
我这直接输出4个*!!

#include<stdio.h>
main()
{
int n=0;
while(n<4)
{
switch(n)
{
case0:
case1:printf("%d",n);
case2:printf("%d",n++);
break;
default:printf("*");
n++;
}
}
}

在switch语句中,case: 遇到break;才会退出switch语句,
所以当n=0,n=1的时候,都是执行完case2:才遇到break;

case1:输出结果为0,case2:输出结果为0,然后n自增,n=1………………