1、switch 语句
使用switch语句选择要执行的许多代码块之一。
语法switch(expression) {
case x:
// 代码块
break;
case y:
// 代码块
break;
default:
// 代码块
}
switch case 语句有如下规则:
1)switch语句中使用的表达式必须具是int或enum类型,否则如float等其他数据类型是无法通过的编译的,因为编译器需要switch后面的语句和case后面的值精确匹配,而计算机无法精确表达一个float数据类型。
2)switch可以任意个case语句(包括没有), 值和语句之间使用:分隔。
3)case后面的值必须是int常量值,或者返回结果为int类型的表达式,以下代码无法编译通过。
4)当switch后面的变量值和case后面的常量值匹配相等后,case后面的代码将会被执行,直到break语句被执行后跳出switch代码块
5)break不是必须的,如果没有break,则执行完当前case的代码块后会继续执行后面case代码块的内容,直到执行break才可以退出
6)switch有一个默认的情况,我们用default关键词表示,当switch后面的变量和所有case后面的常量都不匹配的情况下,默认执行default后面的语句
例如:#include
int main() {
printf("Please input a number(1-100):");
int grade;
scanf("%d", &grade);
switch (grade / 10) {
case 10:
case 9:
printf("A\n");
break;
case 8:
case 7:
printf("B\n");
break;
case 6:
case 5:
printf("C\n");
break;
default:
break;
}
return 0;
}
2、break关键字
当C语言代码执行到break关键字时,它将跳出switch块。#include
int main()
{
char c='\0';
for(int i=1;i<=4;i++){
switch(i){
case 1:c='J';
printf("%c",c);
//break;
case 2:c='e';
printf("%c",c);
break;
case 3:c='p';
printf("%c",c);
//break;
printf("好\n");//不匹配都会执行
}
}
/*当i=1时运行结果是 Je 当i=2时 运行结果是 e 当i是3是运行结果是 p 好
当i是4时运行结果是好*/
}
注意: continue 不能用于switch语句
3、default关键字
default关键字指定在没有case 匹配的情况下要运行的一些代码:
例如:int day = 4;
switch (day) {
case 6:
printf("学习python\n");
break;
case 7:
printf("学习java\n");
break;
default:
printf("cjavapy\n");
}
// 输出 "cjavapy"
注意:如果default语句用作switch块中的最后一条语句,则不需要break。