C语言switch史上最详细的讲解

C Programming学习笔记【谭浩强老师编】(第四章选择结构程序设计)02 逻辑运算符和逻辑表达式 阅读详情

原文链接

https://github.com/shellhub/blog/issues/41

C语言switch史上最详细的讲解

switch语句允许测试变量与值列表的相等性,每个值称之为案例或者case,程序会检查switch后面的值并且与case后面的值比对,如果相等则执行后面的代码或代码块

语法

switch在C语言中的语法如下

switch(expression) {

   case constant-expression  :
      statement(s);
      break; /* optional */

   case constant-expression  :
      statement(s);
      break; /* optional */

   /* you can have any number of case statements */
   default : /* Optional */
   statement(s);
}
  • switch语句中使用的表达式必须具是int或enum类型,否则如float等其他数据类型是无法通过的编译的,因为编译器需要switch后面的语句和case后面的值精确匹配,而计算机无法精确表达一个float数据类型
  • switch可以任意个case语句(包括没有), 值和语句之间使用:分隔
  • case后面的值必须是int常量值,或者返回结果为int类型的表达式,以下代码无法编译通过
switch (1) {
    case 1.1:
        break;
}
int a;
scanf("%d", &a);
switch (a) {
    case a + 1:
        break;
}
  • 当switch后面的变量值和case后面的常量值匹配相等后,case后面的代码将会被执行,直到break语句被执行后跳出switch代码块

  • break不是必须的,如果没有break,则执行完当前case的代码块后会继续执行后面case代码块的内容,直到执行break才可以退出

  • switch有一个默认的情况,我们用default关键词表示,当switch后面的变量和所有case后面的常量都不匹配的情况下,默认执行default后面的语句

switch_statement

Example 1

#include <stdio.h>

int main () {

    /* local variable definition */
    char grade;
    scanf("%c", &grade);

    switch(grade) {
        case 'A' :
            printf("Excellent!\n" );
            break;
        case 'B' :
        case 'C' :
            printf("Well done\n" );
            break;
        case 'D' :
            printf("You passed\n" );
            break;
        case 'F' :
            printf("Better try again\n" );
            break;
        default :
            printf("Invalid grade\n" );
    }

    printf("Your grade is  %c\n", grade );

    return 0;
}

Example 2

#include <stdio.h>
int main() {

    printf("Please input your grade(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;
}
switch语句(详细讲解) switch是一个用于多条件判断的控制结构,可以让代码更加清晰简洁。使用break可以防止,但在某些情况下,合理利用可以让代码更高效。选择合适的情况下使用switch,特别是在需要判断多个常量条件时,它比if-else结构更直观和高效。希望这个解释对你有帮助!如果你有任何问题或需要更深入的讲解,随时告诉我! 阅读详情

相关推荐

C语言:简单的switch()函数,代码讲解

OK,今天再讲解一个简单的C语言代码 使用软件,dev C++5.11 那么,我先把代码粘贴上来,然后再进行分析

卧龙院士 1万+

C语言/C++【switch语句详解(用法、规则、流程图、实例)】

C语言/C++【switch语句详解(用法、规则、流程图、实例)】

ken2232的博客 4万+

AI+Xmind自动生成测试用例(思维导图格式)

最后:我是Walker,一个热爱分享编程知识的程序员,希望能够帮助到你!

Think_and_work的博客 2333

C语言入门第十篇,switch语句

switch是一个不太复杂的语句,我们来看看他的用法吧。 switch(变量) { case 变量1: 执行语句 break; case 变量2: 执行语句 break; …… default: 执行语句 } switch

N1neSun的博客 1万+

cpp中auto, auto &和const auto &的区别

笔者初学cpp,如有纰漏,请见谅并指正。 用在哪 auto用于推断类型,具体可用于声明变量时根据初始化表达式自动推断该变量的类型,也就是可用在for循环。 也可以用于声明函数返回值的占位符。 怎么用 这里主要讲for循环中三者的区别 直接说结论 auto auto用于copy一份集合中的数据,对于这种情况,在循环体中不论怎么修改copy的数据,是不会影响到原有集合中的数据的。 举个简单的例子 int arr[5] = {0, 1, 2, 3, 4}; cout << "使用auto" <&

NinoSun的博客 3176

DFT实战:如何用Synopsys工具搞定多时钟域Scan Chain设计(附避坑指南)

本文详细解析了使用Synopsys DFT Compiler工具链实现多时钟域Scan Chain设计的全流程,包括时钟混合策略、跨时钟域平衡技巧和实战脚本剖析。通过量产验证的工程实践方案,帮助DFT工程师有效解决复杂SoC设计中的Scan Chain挑战,提升测试效率和质量。

mm9012的博客 1033

c语言switch笔试,C语言switch史上最详细的讲解

原文链接https://github.com/shellhub/blog/issues/41C语言switch史上最详细的讲解switch语句允许测试变量与值列表的相等性,每个值称之为案例或者case,程序会检查switch后面的值并且与case后面的值比对,如果相等则执行后面的代码或代码块语法switch在C语言中的语法如下switch(expression) {case constant-ex...

weixin_39815943的博客 215

PaddleOCR GPU部署:从环境配置到避坑实战指南

本文详细介绍了PaddleOCR GPU部署的全过程,从环境配置到避坑实战指南。通过分析常见的部署失败原因,提供硬件兼容性自查、软件环境精配方案以及路径配置的解决方案,帮助用户高效完成GPU加速的OCR任务部署,避免90%的常见错误。

weixin_30839881的博客 418

【C语言初阶】switch语句的基本语法

switch语句做为多分支语句大家多多少少都见过,那么你switch语句的3个注意事项嘛,本文章带你全面认识switch语句!

LT15171009269的博客 8071

解读区块链在制药和物流管理中具备的优势

供应链透明度是建立药品弹性供应链的关键,如何更好地促进端到端的透明度,促进合作伙伴和消费者之间的信任度是当前医药和物流行业高管们关注的话题,区块链技术可以很好的帮助他们。 链集市 · 让区块链落地更简单 《区块链行业观察》专栏·第 31 篇 作者丨Shams Rahman 图片丨来源于网络 作者介绍:本文作者为Shams Rahman教授,是RMIT大学商业IT和物流学院的供应链管理教授、研究与创新部门副主任。本文中文版本由链集市团队编译整理,英文版权归原作者所有,中文转载请联系编译。 新冠肺炎疫情的爆发

CECBC的博客 623

计算机视觉与深度学习 | 2024年至2025年图像匹配算法总结(原理,公式,代码,开源链接)

以上总结覆盖了当前主流和前沿技术,实际选择需结合具体场景(速度/精度/资源限制)评估。

尘世冰封的专栏 1588

【C语言】判断语句以及分支语句《详细讲解》

判断语句顾名思义:是由我们打代码的人想让代码执行哪段语句,这就叫做是判断语句! 以程序员的角度上来说就是:判断结构要求程序员指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的)。 C 语言把任何非零和非空的值假定为true,把零或null假定为false。 当[if]语句只有两个分支可以可供选择,而在实际问题中常需要用到多分支的选择。当然使用嵌套[if]语句也可以实现多分支的选择,但是如果分支很多的话,就会使得嵌套的[if]语句层数

"謓泽"正在路上朝着"攻城狮"方向"前进四"! 2341

AI Agent Harness自动化漏洞扫描

本文要介绍的AI Agent Harness自动化漏洞扫描方案,正是为了解决传统漏扫的上述痛点而生。漏洞检出率提升35%以上,逻辑漏洞检出率从不足30%提升到92%误报率从27%降到3%以下,人工复核成本降低90%支持自定义业务系统、IoT、工控等多场景资产扫描,适配成本降低80%内置反馈学习机制,扫描效果越用越好AI Agent是指具备自主感知、决策、行动能力的大模型驱动程序,它可以根据给定的目标,自主调用工具、规划步骤、完成任务。

AI 原生应用开发的博客 473

c语言switch用法

在C语言中,switch语句是一种选择性控制结构,它允许测试一个变量等于多个值时的情况。每个可能的值称为一个case,且被测试的变量会对每个case进行检查。switch(表达式){case 常量1:语句1;break;case 常量2:语句2;break;default:语句n;。其中"表达式"通常是整型或字符型的变量,"case"后面的常量表达式必须与"表达式"的值完全匹配,才能执行该case后的语句。如果匹配成功,程序会执行相应的语句序列,直到遇到break语句才会跳出switch结构。

qq_64997449的博客 2万+

5、高级综合技术:从调度到优化的全面解析

本文深入解析了高级综合技术,涵盖从控制/数据流图构建、调度算法、分配绑定策略到编译器优化的全流程。通过案例分析和对比,探讨了不同优化策略对性能和资源利用的影响,并总结了关键要点及未来发展趋势,为高效利用FPGA实现数字设计提供了全面指导。

night的博客 117

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

switch怎么用字符c语言,switch怎么用c语言-switch用c语言讲解

在c语言中switch语句主要就是用于判断和跳转页面的语句,所以今天就来为大家介绍c语言怎么使用switch语句。C语言switch史上最详细的讲解switch语句允许测试变量与值列表的相等性,每个值称之为案例或者case,程序会检查switch后面的值并且与case后面的值比对,如果相等则执行后面的代码或代码块switch在C语言中的语法如下switch语句中使用的表达式必须具是int或enum...

weixin_36410141的博客 1631

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

C语言条件语句中switch语句的一些用法

C语言;条件语句;switch语句;if语句与switch语句对比;breaak语句;default语句分支

2401_82489659的博客 6613

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

C语言分支语句if,switch语句详细讲解

C语言分支语句if,switch语句详细讲解篇!!!

weixin_60668058的博客 1560

c语言 switch错误用法,C语言switch语句的详细用法

C语言还为多分支选择提供了另一个switch语句,其一般形式为:开关(表达式){案例常量表达式1: 语句1;案例常量表达式2: 语句2;...条件常量表达式n: 语句n;默认值: 语句n + 1;}语义是: 计算表达式的值. 将其与后续常量表达式的值一一比较. 当表达式的值等于常量表达式的值时,将执行后续语句,然后不进行判断,并且在个案之后的所有后续语句将继续. 如果在所有情况下表达式的值都与常量...

weixin_30230059的博客 1568

c语言中switch语句流程图_C语言switch详解

C语言switch史上最详细的讲解switch语句允许测试变量与值列表的相等性,每个值称之为案例或者`case`,程序会检查switch后面的值并且与`case`后面的值比对,如果相等则执行后面的代码或代码块### 语法`switch`在C语言中的语法如下``` cswitch(expression) { case constant-expression : statement(s...

weixin_39913628的博客 2281

C语言Switch语句的case用法详解

case语句还可以用来匹配字符串类型的表达式,例如下面的代码块,当str的取值为\apple\时,会执行case \apple\中的代码块,输出“str的取值为apple”;常量n是用来与表达式进行比较的值,而语句1、语句2…case语句还可以用来匹配字符类型的表达式,例如下面的代码块,当c的取值为’A’时,会执行case 'A’中的代码块,输出“c的取值为A”;case语句还可以用来匹配任意表达式,例如下面的代码块,当变量x的值为11时,会执行case x-10中的代码块,输出“x的值为11”;

我点评的博客 2万+

c语言switch例题注释,switch语句例子大全 C语言switch语句例题

CSS布局HTML小编今天和大家分享一个switch语句的例子matlab中switch语句的用法例子matlab中switch语句看了好几本教材上的例子都未看懂核心,不知谁能提供if-else-end语句所对应的是多重判断选择,而有时也会遇到多分支判断选择的问题。 MATLAB语言为解决多分支判断选择提供了switch-case语句。 switch-case语句的一般表达形式为: switch〈...

weixin_42118011的博客 1万+

C语言开关语句:switch

1)简单介绍switch(开关语句)的形式: switch: switch (表达式) { case 常数表达式1: break; case 常数表达式2: break; case 常数表达式3: break; case 常数表达式4: break; ......(很多的case) default: break; } swit...

南雨兮 2万+

c语言 switch_C语言switch

介绍Switch在一些计算机语言中是保留字,其作用大多情况下是进行判断选择。以C语言来说,switch(开关语句)常和case break default一起使用。为什么要出现Switch?C语言虽然没有限制 if else能够处理的分支数量,但当分支过多时,用 if else 处理会不太方便,而且容易出现 if else 配对出错的情况,对于这种情况,实际开发中一般使用 switch...

weixin_39598501的博客 527

从最浅层剖析C语言——第三节(超详细讲解if、switch分支结构)

C语言是一门结构化的程序设计语言,C语言中存在三种结构,分别指的是顺序结构,选择结构,循环结构顺序结构:从A程序执行直接执行到B程序,A-------->B选择结构:有多种路径可选择,在多种路径中选择达成最终结果今天着重介绍循环结构我们通过。

derive_magic的博客 1498

C语言超详细讲解——分支与循环【知识讲解篇】

if语句、switch语句、三种循环结构讲解,附案例

2401_86940607的博客 1066
上一篇: 《C语言结构体史上最详细的讲解》
下一篇: 最大公约数和最小公倍数问题
ishellhub
博客等级 码龄9年 102粉丝 25原创
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值