C语言中default 放在最后一个case前面则如何执行?
#include<stdio.h>
void main()
{int i;
for(i=1;i<=5;i++)
switch(i%5)
{case 0:printf("*");break;
case 1:printf("#");break;
default:printf("\n");
case 2:printf("&");
}
}
求运行结果 展开
在C语言中 ,无论default在switch语句中的哪个位置,编译器都会先找case,程序从第1个找到的case开始执行,如果所有的case都不满足条件,才会执行default。因此,default的位置可以随便放。但是出于编码规范考虑,一般写在最后。
比如下面的代码,运行程序后,输入2,依然正常执行,而并没有因为default放在case前而改变了switch语句的执行流程。
#include <stdio.h>
#include <locale.h>
int main()
{
int i;
scanf("%d", &i);
switch (i) {
case 1:
printf("i==1\n"); break;
default:
printf("i!=1 && i!=2\n");
case 2:
printf("i==2\n"); break;
}
return 0;
}
1、当要向输出设备(显示屏、打印机等)输出字符时,可以用 c 格式描述符控制。如下所示代码即输出字符ch (a) :char ch = 'a';printf("Character: %c \n",ch);。
2、在需要输出十进制数字时,可以用d 或 i 控制输出,如下所示: int dcm = 24; printf("Decimal number: %d\n",dcm); printf("Decimal number: %i\n",dcm);。
3、利用 o 或 #o 控制输出八进制格式数字:int oct = 24;printf("Octal1: %o\n",oct);printf("Octal2: %#o\n",oct);其中,第一种输出数字前不会有数字0,而第二种(#o)则会在输出时前端补0。
4、同八进制一样,利用 x 或 #x 可以输出控制十六进制格式数字。
5、 字符串输出在C语言中输出字符串可以使用s控制。
6、 浮点数(单精度/双精度)输出,如下所示,输出单精度/双精度数据。
#&
&
&*
供参考……
#&
&
&*Press any key to continue
i=1时,结果是执行Case 1l 所以是#号,没有执行Default
i=2时,打印 &,也没有执行Defalut;
i=3时,执行Defalut,结果打了个回车,并换行,并执行case 2 ;因为Defalut后没有break;
i=4时,执行Defalut,结果打了个回车,并执行Case 2;因为Defalut后没有break;
i=5是,执行Case 0.打印了*
#&
&
&*
i=1时,结果是执行Case 1l 所以是#号,没有执行Default
i=2时,打印 &,也没有执行Defalut;
i=3时,执行Defalut,结果打了个回车,并换行,并执行case 2 ;因为Defalut后没有break;
i=4时,执行Defalut,结果打了个回车,并执行Case 2;因为Defalut后没有break;
i=5是,执行Case 0.打印了*
#&
&
&*