- switch与case
- default
switch的语法结构:
int main(){
int a = 0;
while (1){
scanf("%d", &a);
printf("请输入数字n");
switch (a){//整型变量,整型常量,整型表达式
case 1://必须是常量,也宏替换的,也可以是枚举常量,但不能是const修饰的变量
printf("星期1n");
break;
case 2:
printf("星期2n");
break;
case 3:
printf("星期3n");
break;
case 4:
printf("星期4n");
break;
case 5:
printf("星期5n");
break;
case 6:
printf("星期6n");
break;
case 7:
printf("星期7n");
break;
}
}
return 0;
}
switch的括号内,只能是整型变量,整型常量,整型表达式
case 后面只能是整型常量或者宏替换的或者是枚举类型的,不能使const修饰的变量
如果想让case,执行多条语句,可以直接再加
到这我们想一下,case后面能定义变量嘛
这是不行的,得加钱!不对不对,得加大括号
这就行了,但是极为不推荐,我们直接可以写一个函数呀
#includevoid show(){ printf("星期1n"); printf("星期1n"); printf("星期1n"); printf("星期1n"); printf("星期1n"); printf("星期1n"); } int main(){ int a = 0; while (1){ scanf("%d", &a); printf("请输入数字n"); switch (a){//整型变量,整型常量,整型表达式 case 1://必须是常量,也宏替换的,也可以是枚举常量,但不能是const修饰的变量 show(); break; case 2: printf("星期2n"); break; case 3: printf("星期3n"); break; case 4: printf("星期4n"); break; case 5: printf("星期5n"); break; case 6: printf("星期6n"); break; case 7: printf("星期7n"); break; } } return 0; }
讲到这里我们来说一下,switch有判断和分支功能嘛,switch是没有判断和分支功能的,但是csae 在这个结构中起到的是判断功能,break起到的是,分支功能,这一点很重要好好体会
接下来如果我们对以上代码进行更改,周1,2,3, 4,5 统一打印周内,周六日,打印周末,如何改变呢,直接看代码
我们这样更改
int main(){
int a = 0;
while (1){
scanf("%d", &a);
printf("请输入数字n");
switch (a){//整型变量,整型常量,整型表达式
case 1://必须是常量,也宏替换的,也可以是枚举常量,但不能是const修饰的变量
printf("星期1n");
break;
case 2:
printf("星期2n");
break;
case 3:
printf("星期3n");
break;
case 4:
printf("星期4n");
break;
case 5:
printf("星期5n");
break;
case 6:
printf("星期6n");
break;
case 7:
printf("星期7n");
break;
default :
printf("赶紧三连或者输入自己是小王八n");
break;
}
}
return 0;
}
标红:switch中强烈建议有default,default的位置可以在switch代码块中的任何位置
补充一下,退出死循环的技巧
int main(){
int a = 0;
int flag = 0;
while (!flag){
scanf("%d", &a);
printf("请输入数字n");
switch (a){//整型变量,整型常量,整型表达式
case 1://必须是常量,也宏替换的,也可以是枚举常量,但不能是const修饰的变量
printf("星期1n");
break;
case 2:
printf("星期2n");
break;
case 3:
printf("星期3n");
break;
case 4:
printf("星期4n");
break;
case 5:
printf("星期5n");
break;
case 6:
printf("星期6n");
break;
case 7:
printf("星期7n");
break;
default :
flag = 1;
break;
}
}
return 0;
}



