1,040
社区成员




这是我参加朝闻道知识分享大赛发布的第23篇文章
当switch后面括号内“表达式”的值与某个case后面的“常量表达式”的值相等时,就执行此case后面的语句。执行完一个case后面的语句后,流程控制转移到下一个case继续执行。如果你只想执行这一个case语句,不想执行其他case,那么就需要在这个case语句后面加上break,跳出switch语句。
switch是“选择”语句,不是“循环”语句。因为break一般给我们的印象是跳出“循环”,但break还有一个用法,就是跳出switch。(https://blog.csdn.net/BestEternity/article/details/90403632?fromshare=blogdetail&sharetype=blogdetail&sharerId=90403632&sharerefer=PC&sharesource=2301_80948168&sharefrom=from_link)
#include <stdio.h>
int main(int argc, const char *argv[])
{
int ret = 0;
int score = 0;
printf("输入一个学生的成绩:");
ret = scanf("%d",&score);
//scanf函数执行成功返回值是 按指定格式输入变量的个数
//scanf函数未按照格式输入时,数据并没有存到变量中,此时返回值为0,即ret = 0。
//在本代码中若按int格式输入则return 1,未按格式输入则return 0
//输入'+'或其他非数字时,若不进行if语句的判断,则直接执行case 0:输出不及格
getchar(); //清理下垃圾字符
if(ret==1)
{
switch(score / 10)
{
case 10: //利用case击穿原则
case 9:
printf("A\n");
break;
case 8:
printf("B\n");
break;
case 7:
printf("C\n");
break;
case 6:
printf("D\n");
break;
default:
printf("不及格\n");
break;
}
}
else{
printf("输入错误\n");
}
return 0;
}