switch语句是一种多分支语句,常用于多分支情况
形如:
switch(整型表达式)
{
case 1:
case 2:
case 3:
case 4:
}
其中switch()的括号中必须是 整型表达式(负数也可以)
case后面必须跟 整形常量表达式(负数也可以)
switch会根据括号中整型表达式的值(负数也可以),找到对应的case进入,然后执行后面所有的case,因此需要break在适当的地方中断程序。
形如:
switch(整型表达式)
{
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
}
//星期的中英文转换
#include<stdio.h>
int main()
{
int day = 0;
printf("星期:");
scanf("%d", &day);
switch (day )
{
case 1:
printf("Monday\n");
break;
case 2:
printf("Tuesday\n");
break;
case 3:
printf("Wednesday\n");
break;
case 4:
printf("Thursday\n");
break;
case 5:
printf("Friday\n");
break;
case 6:
printf("Saturday\n");
break;
case 7:
printf("Sunday\n");
break;
}
return 0;
}
有些情况下,不用每个case后面都跟break;
#include<stdio.h>
int main()
{
int day = 0;
again:
printf("星期:");
scanf("%d", &day);
switch (day )
{
case 1:
printf("Monday\n");
goto again;
case 2:
printf("Tuesday\n");
goto again;
case 3:
printf("Wednesday\n");
goto again;
case 4:
printf("Thursday\n");
goto again;
case 5:
printf("Friday\n");
goto again;
case 6:
printf("Saturday\n");
goto again;
case 7:
printf("Sunday\n");
goto again;
}
return 0;
}
或
#include<stdio.h>
int main()
{
int day = 0;
printf("星期:");
scanf("%d", &day);
switch (day )
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("工作日\n");
break;
case 6:
case 7:
printf("休息日\n");
break;
}
return 0;
}
如果输入的数值没在case的范围中,则程序直接终止,没有报错;应该避免这种不受控的情况出现,此时在最后一个break后,增加default语句,提示输入错误。
#include<stdio.h>
int main()
{
int day = 0;
printf("星期:");
scanf("%d", &day);
switch (day )
{
case -1:
printf("Time Go Back\n");
break;
case 1:
case 2:
case 3:
case 4:
case 5:
printf("工作日\n");
break;
case 6:
case 7:
printf("休息日\n");
break;
default:
printf("Wrong Input\n");
break;
}
return 0;
}