C语言中的switch语句基本用法

C语言中的switch语句基本用法switch 语句 实际生活中 需要做出很多选择 大家都知道做选择可以使用 if 语句 但是如果选择太多 if 语句使用起来就会很繁琐 这个时候就需要一个能将代码简化的语句 也就是我们今天的主角 switch 语句 switch 语句是一个多分支选择语句 并且可以支持嵌套 switch 语句的基本格式 switch 表达式 case 常量 1 语句 1case 常量 2 语句 2default 语句 nbreak switch 语句通过将表达式的值与常量值进行比对 如果相等则执行后面的

switch语句:

实际生活中,需要做出很多选择,大家都知道做选择可以使用if语句,但是如果选择太多,if语句使用起来就会很繁琐,这个时候就需要一个能将代码简化的语句,也就是我们今天的主角switch语句。

switch语句是一个多分支选择语句,并且可以支持嵌套。

switch语句的基本格式

switch(表达式) { case 常量1:语句1 case 常量2:语句2 default:语句n break; }

switch语句通过将表达式的值与常量值进行比对,如果相等则执行后面的语句,如果不相等则跳到下一个case语句,当表达式和常量值相等,switch语句会将当前case语句以及后面所有的case语句全部输出。假如我们要实现用户输入一个数字来判断今天是星期几,那么就可以用下面的代码实现。

#define _CRT_SECURE_NO_WARNINGS 1 #include 
  
    int main() { int day = 0; //定义一个整型变量day,并对其赋值为0 printf("请输入一个数字\n"); //让用户输入一个数字 scanf("%d", &day); //接收用户输入的数字 switch (day) { case 1:printf("星期一\n"); //如果day的值为1,则输出星期一 case 2:printf("星期二\n"); //以下同上 case 3:printf("星期三\n"); case 4:printf("星期四\n"); case 5:printf("星期五\n"); case 6:printf("星期六\n"); case 7:printf("星期天\n"); default: break; } return 0; } 
  

运行结果如下图所示,可以看到当我输入2时,switch语句将我2以及下面所有语句都执行,这显然不是我想要的结果,那么怎么解决这个问题呢,很简单,只需要在每一个case语句后面加上一个break语句C语言中的switch语句基本用法

 break语句:当switch语句运行时遇到break关键字时会跳出,意思就是当语句运行到break时就不再运行了,接下来剩下的case语句也不会再执行,switch语句结束。

#define _CRT_SECURE_NO_WARNINGS 1 #include 
  
    int main() { int day = 0; //定义一个整型变量day,并对其赋值为0 printf("请输入一个数字\n"); //让用户输入一个数字 scanf("%d", &day); //接收用户输入的数字 switch (day) { case 1:printf("星期一\n"); break; case 2:printf("星期二\n"); break; case 3:printf("星期三\n"); break; case 4:printf("星期四\n"); break; case 5:printf("星期五\n"); break; case 6:printf("星期六\n"); break; case 7:printf("星期天\n"); break; } return 0; } 
  

C语言中的switch语句基本用法 

可以看到当我再次输入2时,只输出一个星期二,这显然break语句已经生效,也达到了我想要的结果,还有一个值得注意的是,语句是可以为空语句的,那么我们将break和空语句结合起来就可以实现下面的代码。

#define _CRT_SECURE_NO_WARNINGS 1 #include 
  
    int main() { //实现1-5都为工作日,6,7为休息日,可以看出当case语句后没有执行语句且没有break时代码会从条件判断成立进入,直到遇到break int day = 0; scanf("%d", &day); switch (day) { case 1: case 2: case 3: case 4: case 5:printf("工作日\n"); break; case 6:printf("休息日\n"); break case 7:printf("休息日\n"); break; } return 0; } 
  

C语言中的switch语句基本用法 

C语言中的switch语句基本用法 

 那么问题来了,如果用户输入时不小心输入了一个switch语句中没有的常量值怎么办呢,这个也很简单,只需要一个小小的default,请看

#define _CRT_SECURE_NO_WARNINGS 1 #include 
  
    int main() { //实现1-5都为工作日,6,7为休息日,可以看出当case语句后没有执行语句且没有break时代码会从条件判断成立进入,直到遇到break int day = 0; scanf("%d", &day); switch (day) { case 1: case 2: case 3: case 4: case 5:printf("工作日\n"); break; case 6:printf("休息日\n"); break case 7:printf("休息日\n"); break; default:printf("请重新输入\n"); break; } return 0; } 
  

 C语言中的switch语句基本用法

 default的作用就是当表达式的值和常量值全部对比过之后,如果没有匹配的就会输出default后的语句。

那么我们前面讲过switch语句可以实现嵌套,请看下面的代码

C语言中的switch语句基本用法

 

#define _CRT_SECURE_NO_WARNINGS 1 #include 
  
    int main() { int n = 1; int m = 2; switch (n) { case 1:m++; case 2:n++; case 3: switch (n) //switch语句可以支持嵌套 { case 1:n++; case 2:m++; n++; break; default: break; } case 4:m++; break; default: break; } printf("m=%d,n=%d\n", m, n); return 0; } 
  

 那么这个代码的运行结果就交给你们自己来进行体验了,以上就是这次对于switch语句的简单讲解,谢谢大家。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/175794.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午11:24
下一篇 2026年3月26日 下午11:25


相关推荐

  • navcat15 for Mac激活码_在线激活

    (navcat15 for Mac激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlS32PGH0SQB-eyJsa…

    2022年3月26日
    65
  • ubuntu clion goland 2022.01.4激活码[最新免费获取]2022.01.25

    (ubuntu clion goland 2022.01.4激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月31日
    315
  • 部署openclaw(龙虾)

    部署openclaw(龙虾)

    2026年3月13日
    2
  • Surging 微服务框架使用入门

    Surging 微服务框架使用入门前言本文非 Surging 官方教程 只是自己学习的总结 如有哪里不对 还望指正 nbsp 我对 surging 的看法我目前所在的公司采用架构就是类似与 Surging 的 RPC 框架 在 NET4 0 框架上搭建 SocketRPC 通过分组轮询的方式调度 RPC 经历过 3 次双十一的考验 实际最高时有 800 多人同时作业 同时并发达到 600 人 连接 rpc nbsp 24 小时不间断作业 这是实际数据 理论上更高 只需要加

    2026年3月18日
    1
  • qtcpsocket断开_2020-05-06 QT子线程使用QTcpSocket连接服务器

    qtcpsocket断开_2020-05-06 QT子线程使用QTcpSocket连接服务器为什么要是用多线程?多线程的使用主要是为了处理比较耗时的过程。多线程的实现可以通过两种方式实现分别是:1.继承QThread实现多线程2.继承QObject实现多线程(由于继承QObject的多线程实现方法更加灵活,Qt官方推荐使用该方法实现多线程)。这里将采用第二种方式实现多线程多线程实现过程1.创建一个继承于QObject的自定义线程类,用来处理比较耗时的功能。相关函数:voidsetFla…

    2025年8月29日
    12
  • unity2d3d结合_unity3d脚本编程与游戏开发

    unity2d3d结合_unity3d脚本编程与游戏开发Unity3D数字孪生笔记(八)一、脚本介绍1、脚本1>介绍2>语法结构3>编译过程4>修改脚本模板2、开发工具1>MonoDevelop2>VisualStudio3>Console3、脚本生命周期4、调试1>使用Unity编辑器2>使用VS3>使用MonoDevelop二、常用API1、Component2、Transform3、GameObject4、Time一、脚本介绍1、脚本1>介绍脚本是附加在游戏物体上用于定义游戏对

    2026年1月21日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号