当前位置: 首页 > news >正文

【精通C语言】:分支结构switch语句的灵活运用

个人头像
🎥 屿小夏 : 个人主页
🔥个人专栏 : C语言详解
🌄 莫道桑榆晚,为霞尚满天!

文章目录

  • 📑前言
  • 一、switch语句
    • 1.1 语法
    • 1.2 代码示例
  • 二、switch的控制语句
    • 2.1 break
    • 2.2 defualt子句
  • 三、switch的嵌套
  • 🌤️全篇总结

在这里插入图片描述

📑前言

在C语言中,switch语句是一种特殊的分支语句,常用于处理多分支的情况。通过switch语句,我们可以根据不同的整型表达式的值执行相应的代码块,使程序的逻辑更加清晰和简洁。除了基本的switch语句语法,我们还将深入探讨了break语句和default子句的作用,以及switch语句的嵌套使用,为读者提供了更全面的认识和理解。

一、switch语句

switch语句也是一种分支语句。
常常用于多分支的情况。

例如:

输入1,输出星期一
输入2,输出星期二
输入3,输出星期三
输入4,输出星期四
输入5,输出星期五
输入6,输出星期六
输入7,输出星期日

1.1 语法

那我没写成 if…else if …else if 的形式太复杂,那我们就得有不一样的语法形式。
这就是switch 语句。

switch(整型表达式)
{语句项;
}  

而语句项是什么呢?

//是一些case语句:
//如下:
case 整形常量表达式:语句;

1.2 代码示例

在switch语句中,我们没办法直接实现分支,搭配break使用才能实现真正的分支。

#include <stdio.h>
int main()
{int day = 0;switch(day){case 1printf("星期一\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;
}

根据需求,有时候我们的代码需要变化:

  1. 输入1-5,输出的是“weekday”;
  2. 输入6-7,输出“weekend
#include <stdio.h>
//switch代码演示
int main()
{int day = 0;switch(day){case 1case 2:case 3:case 4:case 5:printf("weekday\n");break;case 6:case 7:printf("weekend\n");break;}return 0;
}

二、switch的控制语句

2.1 break

break语句 的实际效果是把语句列表划分为不同的分支部分。

break语句用于终止当前的case分支,并跳出switch语句。当switch语句中的某个case条件满足时,执行对应的代码块,然后遇到break语句时,会跳出switch语句,不再执行后续的case条件。如果没有break语句,程序会继续执行后续case条件的代码块,直到遇到break语句或者switch语句结束。因此,break语句在switch语句中的作用是控制程序的流程,避免不必要的代码执行。

编程习惯:

  • 在最后一个 case 语句的后面加上一条 break语句。
  • 之所以这么写是可以避免出现在以前的最后一个 case 语句后面忘了添加 break语句。

2.2 defualt子句

如果表达的值与所有的case标签的值都不匹配怎么办?
其实也没什么,结构就是所有的语句都被跳过而已。
程序并不会终止,也不会报错,因为这种情况在C中并不认为是个错误。
但是,如果你并不想忽略不匹配所有标签的表达式的值时该怎么办呢?
你可以在语句列表中增加一条default子句,把下面的标签
default:
写在任何一个 case 标签可以出现的位置。
当 switch 表达式的值并不匹配所有 case 标签的值时,这个 default 子句后面的语句就会执行。
所以,每个switch语句中只能出现一条default子句。
但是它可以出现在语句列表的任何位置,而且语句流会像执行一个case标签一样执行default子句 。

编程好习惯:

在每个 switch 语句中都放一条default子句是个好习惯,甚至可以在后边再加一个 break 。

三、switch的嵌套

#include <stdio.h>
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;}case 4:m++;break;default:break;}printf("m = %d, n = %d\n", m, n);return 0;
}

switch语句可以嵌套在另一个switch语句中,以实现更复杂的条件判断和逻辑控制。

🌤️全篇总结

本文深入了解了C语言中switch语句的各种用法,包括基本语法、break语句的作用、default子句的使用以及switch语句的嵌套。这些知识不仅帮助我们更好地掌握C语言中的分支结构,还能够提高代码的可读性和可维护性。无论是处理简单的多分支情况还是实现复杂的逻辑控制,希望本文的内容能够帮助读者更好地应用switch语句,编写出高效、清晰的程序。

篇总结

本文深入了解了C语言中switch语句的各种用法,包括基本语法、break语句的作用、default子句的使用以及switch语句的嵌套。这些知识不仅帮助我们更好地掌握C语言中的分支结构,还能够提高代码的可读性和可维护性。无论是处理简单的多分支情况还是实现复杂的逻辑控制,希望本文的内容能够帮助读者更好地应用switch语句,编写出高效、清晰的程序。

C语言结尾图

http://www.lryc.cn/news/276044.html

相关文章:

  • 数据结构和算法-数据结构的基本概念和三要素和数据类型和抽象数据类型
  • LeetCode 2353. 设计食物评分系统【设计,哈希表,有序集合;堆+懒删除】1781
  • Redis (三)
  • CompletableFuture超详解与实践
  • Maven之私服
  • #define宏定义的初探
  • 机器学习 -决策树的案例
  • 04、Kafka ------ 各个功能的作用解释(Cluster、集群、Broker、位移主题、复制因子、领导者副本、主题)
  • 1、C语言:数据类型/运算符与表达式
  • [ffmpeg系列 03] 文件、流地址(视频)解码为YUV
  • python算法每日一练:连续子数组的最大和
  • 一个vue3的tree组件
  • 新手练习项目 4:简易2048游戏的实现(C++)
  • 2023年度总结:技术沉淀、持续学习
  • Unity 利用UGUI之Slider制作进度条
  • OCS2 入门教程(四)- 机器人示例
  • FreeRTOS学习第6篇–任务状态挂起恢复删除等操作
  • BLE Mesh蓝牙组网技术详细解析之Access Layer访问层(六)
  • Netlink 通信机制
  • 2024.1.8每日一题
  • 看了致远OA的表单设计后的思考
  • mmdetection训练自己的数据集
  • MySQL取出N列里最大or最小的一个数据
  • 编写.NET的Dockerfile文件构建镜像
  • 【C语言】浙大版C语言程序设计(第三版) 练习7-4 找出不是两个数组共有的元素
  • 7.27 SpringBoot项目实战 之 整合Swagger
  • 创建第一个SpringMVC项目,入手必看!
  • go 切片长度与容量的区别
  • 回归和分类区别
  • docker nginx滚动日志配置