switch语句的一般形式:
switch(整型表达式){
case 整型常量1 :
语句组1;
break;
case 整型常量2 ://没有break
语句组2;
case 整型常量3 :
语句组3;
break;
......
default : //可选
语句组
}
switch并不做条件关系计算,而是根据表达式的值,直接跳转到于此相等的case的语句中。效率很高。
case语句执行完后,必须根据break跳出switch结构。如果没有break,会继续向下执行。如左例的case2和case3
如果表达式的值与所有case都不同,跳转到default。
如果没有default,switch直接结束。
int main() {
int month, days;
printf("输入月份:");
scanf("%d", &month);
switch (month){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days = 31;
break;
case 2:
days = 28;
break;
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
default:
days = -1;
}
if (days < 0)
puts("输入月份无效");
else:
printf("%月有%d天\n", month, days);
return 0;
}