一个C语言问题
main()
{ int i;
for(i=0;i<3;i++)
switch(i)
{ case 1: printf("%d",i);
case 2: printf("%d",i);
default: printf("%d",i);
}
}
执行后输出的结果是
A) 011122 B) 012 C) 012020 D) 120
这个程序的结果是A.我想问的是为什么是这样的答案,是不是结果错了
参考答案:i = 0:
执行
default: printf("%d",i);
打印 0
i = 1:
执行
case 1: printf("%d",i);
case 2: printf("%d",i);
default: printf("%d",i);
打印 111
i = 2:
执行
case 2: printf("%d",i);
default: printf("%d",i);
打印 22
原因,在执行一个case 值 :后面的语句后,如果没有break,会执行后面所有的case 值:(如果有derault:,当然也要执行)
如果有一个break那么就退出switch