
switch语句是一种根据不同的条件执行不同代码块的结构。它基于表达式的值来选择要执行的代码块。其语法结构如下:
switch ( 表达式) {
case 常量表达式1 :
语句1;
break;
case 常量表达式2 :
语句2;
break;
……
case 常量表达式n :
语句n;
break;
default:
语句n+1;
break;
}
这里有几个需要注意的规则:
首先,case标签后的常量表达式必须是唯一的,且表达式后必须跟一个冒号。在switch结构内部,每个case后面需要跟随执行语句,然后使用break语句跳出switch结构。
接着,switch语句只适用于基本数据类型,例如整数(int)和字符(char)等。对于其他类型的数据,如浮点数,则必须使用if语句来判断。
此外,不要问为什么,这是C语言的规定。我们只需要理解和应用这些规则即可。对于浮点数的使用,因为它们在计算机中存储的是近似值,所以在switch语句中无法使用浮点数进行精确的判断。
举个例子,假设我们需要根据学生的成绩进行评级,可以使用以下代码:
设成绩 为 s
switch(s/10) {
case 10:
printf("优秀\n");
break;
case 9:
printf("优秀\n");
break;
case 8:
printf("良好\n");
break;
case 7:
printf("中等\n");
break;
case 6:
printf("一般\n");
break;
case 5:
printf("不及格\n");
break;
case 4:
printf("不及格\n");
break;
case 3:
printf("不及格\n");
break;
case 2:
printf("不及格\n");
break;
case 1:
printf("不及格\n");
break;
case 0:
printf("不及格\n");
break;
default :
printf("输入分数错误\n");
}
这段代码会根据成绩的十位数进行评级,例如80-89分评为“良好”,70-79分评为“中等”,以此类推。当成绩小于60分时,会被认定为不及格,而输入的分数如果不在0-100分之间,则提示输入错误。