[C.C++] c语言switch用法

1086 0
Honkers 2025-4-29 08:05:02 | 显示全部楼层 |阅读模式

目录

1.概念介绍

2.整除

3.switch的使用 

3.1判断整形变量

3.2判断字符变量

3.3 switch中break的作用

3.4综合运用 


1.概念介绍

在C语言中,switch语句是一种选择性控制结构,它允许测试一个变量等于多个值时的情况。每个可能的值称为一个case,且被测试的变量会对每个case进行检查。

switch语句的基本格式为:switch(表达式){case 常量1:语句1; break; case 常量2:语句2; break; default:语句n;}。其中"表达式"通常是整型或字符型的变量,"case"后面的常量表达式必须与"表达式"的值完全匹配,才能执行该case后的语句。如果匹配成功,程序会执行相应的语句序列,直到遇到break语句才会跳出switch结构。

若"表达式"的值与所有case后的常量表达式都不匹配,则程序会执行default后的语句。需要注意的是,default语句是可选的,如果switch语句中没有default部分,且所有case均不匹配时,switch结构则会跳过,继续执行switch语句之后的代码。

此外,switch语句还支持嵌套使用,即在一个switch结构的内部,可以包含另一个完整的switch结构。这样的嵌套可以使用更复杂的条件判断和分支处理。

看不懂?没关系,从下面开始一点一点来

2.整除

想要学会使用switch,得先了解一些c语言整除的概念,俩int整形变量相除,得到的结果也是整形,只保留整数部分,小数部分直接去掉

比如

  1. #include<stdio.h>c
  2. int main()
  3. {
  4. int a=5;
  5. int b=3;
  6. printf("5/3=%d\n",a/b);
  7. return 0;
  8. }
复制代码

 

3.switch的使用 

在C语言中,switch语句用于根据一个变量的值执行不同的代码块。以下是使用switch的基本语法:

switch (变量) {
    case 值1:
        // 当变量的值等于值1时执行的代码
        break;
    case 值2:
        // 当变量的值等于值2时执行的代码
        break;
    // ...其他case分支...
    default:
        // 当变量的值不匹配任何case时执行的代码
}
 

3.1判断整形变量

  1. #include <stdio.h>
  2. int main() {
  3. int num;
  4. printf("请输入一个整数(1-3):");
  5. scanf("%d", &num);
  6. switch (num) {
  7. case 1:
  8. printf("你输入的是1。");
  9. break;
  10. case 2:
  11. printf("你输入的是2。");
  12. break;
  13. case 3:
  14. printf("你输入的是3。");
  15. break;
  16. default:
  17. printf("你输入的不在1-3之间。");
  18. }
  19. return 0;
  20. }
复制代码

在这个示例中,我们首先从用户那里获取一个整数,然后使用switch语句根据该整数的值执行不同的代码块。如果输入的整数是1、2或3,程序将输出相应的消息;否则,它将输出“你输入的不在1-3之间”。

3.2判断字符变量

当然,不仅可以判断整形变量,还能判断字符变量

  1. #include <stdio.h>
  2. int main() {
  3. char c;
  4. printf("请输入一个字符(x/y/z):");
  5. scanf("%c", &c);
  6. switch (c) {
  7. case 'x':
  8. printf("你输入的是x。");
  9. break;
  10. case 'y':
  11. printf("你输入的是y。");
  12. break;
  13. case 'z':
  14. printf("你输入的是z。");
  15. break;
  16. default:
  17. printf("你输入的不在x/y/z之间。");
  18. }
  19. return 0;
  20. }
复制代码

3.3 switch中break的作用

在C语言中,break语句用于跳出当前switch语句的执行流程。它的作用是防止程序继续执行下一个case分支中的代码,直到遇到break或者switch语句结束。

如果没有break语句,当一个case分支的条件满足时,程序会继续执行下一个case分支中的代码,直到遇到break或者整个switch语句结束。这种情况被称为“贯穿”(fallthrough)。

例如,考虑以下代码:

  1. #include <stdio.h>
  2. int main() {
  3. int num;
  4. printf("请输入一个整数(1-3):");
  5. scanf("%d", &num);
  6. switch (num) {
  7. case 1:
  8. printf("你输入的是1。");
  9. case 2:
  10. printf("你输入的是2。");
  11. case 3:
  12. printf("你输入的是3。");
  13. break;
  14. default:
  15. printf("你输入的不在1-3之间。");
  16. }
  17. return 0;
  18. }
复制代码

在这个示例中,如果用户输入2,程序将输出:

你输入的是1。
你输入的是2。
你输入的是3。
 

这是因为没有使用break语句,所以程序会贯穿到下一个case分支并继续执行。但是,如果我们添加了break语句,程序将只输出:

你输入的是2。

3.4综合运用 

题目

根据用户输入的成绩(0-100分),判断其成绩等级并输出。如果成绩在90分以上(包括90分),则输出"成绩等级:A";如果成绩在80分以上(不包括90分),则输出"成绩等级:B";以此类推,直到成绩在60分以下,则输出"成绩等级:E"。如果用户输入的成绩不在0-100分之间,程序会输出"数据输入错误!"。

  1. #include <stdio.h>
  2. int main() {
  3. int score;
  4. printf("请输入成绩:");
  5. scanf("%d",&score);
  6. switch (score / 10) {
  7. case 10:
  8. case 9:
  9. printf("成绩等级:A\n");
  10. break;
  11. case 8:
  12. printf("成绩等级:B\n");
  13. break;
  14. case 7:
  15. printf("成绩等级:C\n");
  16. break;
  17. case 6:
  18. printf("成绩等级:D\n");
  19. break;
  20. case 5:
  21. case 4:
  22. case 3:
  23. case 2:
  24. case 1:
  25. case 0:
  26. printf("成绩等级:E\n");
  27. break;
  28. default:
  29. printf("数据输入错误!\n");
  30. break;
  31. }
  32. return 0;
  33. }
复制代码

 代码解释:

scanf输入了一个0-100的变量,然后将其整除10丢给了switch

score的范围是0-100, 那switch/10的范围就是 0-10

  • 当score为90-100时,score/10为9或者10

因为90-100都是A,所以先case 10:后没加break跳出,紧接着case 9了

  • 当score为[80,90)时,score/10=8
  • 当score为[70,80)时,score/10=7
  • 当score为[60,70)时,score/10=6
  • 当score为[0,60)时,score/10的范围为0,1,2,3,4,5

同理0-60都是不及格,都是E,所以case5: 、case4、...都没加break,直到case 0

当score不在范围内:执行default语句

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2026 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行