一、switch 语法
switch(整型/字符型/枚举){ //()括号中间只支持 整型/字符型/枚举
case 值1:
代码块1;
break;
.......代表很多个case break;
case 值N:
代码块N;
break;
default:
defalut代码块;
break;
}
案例
整型案例
printf("请从控制台输入一个整型:");
int number;
scanf("%d",&number);
switch(number){
case 1:
printf("语法块1");
break;
case 2:
printf("语法块2");
break;
case 3:
printf("语法块3");
break;
case 4:
printf("语法块4");
break;
case 5:
printf("语法块5");
break;
default:
printf("语法default");
break;
}
字符案例:
printf("请从控制台输入一个字符后回车:");
char y;
scanf("%c",&y);
switch(y){
case 'a':
printf("语法块a");
break;
case 'b':
printf("语法块b");
break;
case 'c':
printf("语法块c");
break;
case 'n':
printf("语法块n");
break;
case 56: // 字符 '8'的 ascii码对应十进制 56
printf("语法块56");
break;
default:
printf("语法块default");
break;
}
break;讲解
break 跳出语法块.如果case 结束时 没有break 就会直接执行下一个case 当中的语法,直到碰到break后跳出。
案例
printf("请从控制台输入一个字符后回车:");
char y;
scanf("%c",&y);
switch(y){
case 'a':
printf("语法块a");
break;
case 'b':
printf("语法块b");
case 'c':
printf("语法块c");
case 'n':
printf("语法块n");
break;
case 56:
printf("语法块56");
break;
default:
printf("语法块default");
break;
}
二、#?语法:
三元表达式
说明语法:
"逻辑表达式"?"为真执行?号后面": "为假执行:号后面"
前面一定要有赋值语句
案例1:
int a=4,b =10;
char sb = a<b ? 's' : 'b';
printf("%c\n",sb);
对应if语句
if(a< b){
sb = 's';
}else{
sb = 'b';
}
案例2:
int a = 4,b = 10;
char sb = a < b?'s':'b';
printf("%c",sb);
练习1:
从控制台输入一个整型分数(0-100)之间:如果大于等于90分则打印优秀,大于等于80分小于90分打印良好,大于等于70分小于80分还好,大于等于60分小于70分打印及格,小于60分则打印不级格。
答案:
printf("从控制台输入一0到100的整数后回车");
int score;
scanf("%d",&score);
switch(score/10){
case 10:
case 9:
printf("优秀");
break;
case 8:
printf("良好");
break;
case 7:
printf("还好");
break;
case 6:
printf("及格");
break;
default:
printf("不及格");
break;
}
作业1
输入一个字符,若输入的为大写英文字母,则输入其对应的小写英文字母,若输入的是小写字母则输出对应的大写字母,若输出的是非英文字母,则原样输出。
提示:参照 ascii表码找思路
答案:
// switch(c){
// case 'a':
// case 'b':
// case 'c':
// case 'd':
// case 'e':
// case 'f':
// case 'g':
// case 'h':
// case 'i':
// case 'j':
// case 'z':
// c -= 32;
// break;
// case 'A':
// case 'B':
// case 'Z':
// c += 32;
// break;
// }
//
// printf("对应的输入字符是:%c",c);
作业2
预习 ? :语法
思考题作业3,(可选)
编写程序,输入一个年份,判断其是否为闰年。
提示:能被4整除,但不能被100整除为闰年。能被400整除直接是闰年。
printf("请输入一个年份:");
int year;
scanf("%d",&year);
int flag = 0; // 0 不是润年 1 是润年
switch((year % 400 == 0 ) || (year % 4 ==0 && year % 100 !=0)){
case 1:
flag = 1;
break;
case 0:
flag = 0;
break;
}
if(flag == 1 ){
printf("%d是润年",year);
}else{
printf("%d不是润年",year);
}
作业4
把上面的练习3改成用 三元表达式(?:)来做
作业5预习 循环语句(for /while /do while)