switch - 分支语句

Linux中断子系统(二)—— 通用框架处理 1、数据结构分析 (1)中断描述符结构structirq_desc: 1)打开CONFIG_SPARSE_IRQ宏(中断编号不连续),中断描述符以radix- tree来组织,用户在初始化时进行动态分配,然后再插入radix-tree中; 2)关闭CONFIG_SPARSE_IRQ宏(中断编号连续),中断描述符以数组的 形式组织,并且已经分配好; 3)不管哪种形式,最终都可以通过linuxirq号来找到对应的中断描述符; (2)stru... 阅读详情

switch - 分支语句

switch 语句

除了 if 语句外,C 语言还提供了 switch 语句来实现分支结构。

switch 语句是一种特殊形式的 if…else 结构,用于判断条件有多个结果的情况。它把多重的 if…else 改成更易用,可读性更好的形式。

switch(expression)
{
	case value1: statement
	case value2: statement
	default: statement
}

上面代码中,根据表达式 expression 不同的值,执行相应的 case 分支。如果找不到对应的值,就执行 default 分支。

  • switch 后的 expression 必须是整形表达式
  • case 后的值,必须是整形常量表达式

4.1 if 语句和 switch 语句的对比

练习 1:

输入任意一个整数值,计算除 3 之后的余数

如果使用 if 语句完成,如下:

#include<stdio.h>     

int main ()     
{
	int n = 0;     
	scanf("%d",&n);     
	if(n % 3 == 0)     
		printf("整除,余数为0\n");    
	else if(n % 3 == 1)     
		printf("余数为1\n");     
	else if(n % 3 == 2)     
		printf("余数为2\n");     
	return 0;    
}

如果使用 switch 语句改写,如下:

#include<stdio.h>  

int main()  
{
	int n = 0;  
	scanf("%d",&n);  
	switch(n % 3)  
	{
	case 0:  
		printf("整除,余数为0\n");  
		break;  
	case 1:  
		printf("余数为1\n");
		break;  
	case 2:  
		printf("余数为2\n");
		break;  
	}
	return 0;  
}

上述代码中,我们需要注意的点有:

  1. case 和后边的数字之间必须要有空格
  2. 每一个 case 语句中的代码执行完成后,需要加上 break ,才能跳出这个 switch 语句。

4.2 swicth 语句中的 break

前面的代码中,如果我们去掉 case 语句中的; break,会出现什么样的情况呢?

include<stdio.h>

int main()
{
	int n = 0;
	scanf("%d",&n);
	switch(n % 3)
	{
	case 0:
		printf("整除,余数为0\n");
	case 1:
		printf("余数为1\n");
	case 2:
		printf("余数为2\n");
	}
	return 0;
}

测试一组,结果如下:

​​在这里插入图片描述

我们发现,4 除以 3 本来的余数是 1,但是结果多了一行“余数是 2”的打印。

这是为什么呢?

原因是 switch 语句也是分支效果的,只有在 switch 语句中使用 break 才能跳出 switch 语句,如果某一个 case 语句后面没有 break 语句,代码就会继续往下执行,有可能会执行往下的其他的 case 语句的代码,直到遇到 break 语句或者 switch 语句结束。就比如上面的代码就执行了 case 2 中的语句。

所以在 switch 语句中 break 语句非常重要,能实现真正的分支效果。

当然,break 也不是每个 case 语句都得有,这就得根据实际情况来看了。

练习 2:

输入一个1~7的数字,打印对应星期几

例如: 输⼊:1 输出:星期⼀

输⼊:2 输出:星期⼆

输⼊:3 输出:星期三

输⼊:4 输出:星期四

输⼊:5 输出:星期五

输⼊:6 输出:星期六

输⼊:7 输出:星期天

参考代码如下:

#include <stdio.h>   

int main()   
{
	int day = 0;   
	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;    
}

如果需求发生变化:

  1. 输⼊ 1-5,输出的是“工作日”;
  2. 输⼊ 6-7,输出“休息日”

那参考代码如下:

#include <stdio.h>    

int main()         
{
	int day = 0;         
	scanf("%d", &day);         
	switch(day)          
	{
		case 1: 
		case 2:          
		case 3:          
		case 4:          
		case 5:          
			printf("工作日\n");          
			break;          
		case 6:          
		case 7:          
			printf("休息日\n");          
			break;          
	}
		return 0;          
}

至此,我们发现应该根据实际的情况,在代码中觉得是否使⽤ break ,或者在哪⾥使⽤ break ,才能正确完成实际的需求。

4.3 switch 语句中的 default

在使⽤ switch 语句的时候,我们经常可能遇到⼀种情况,⽐如 switch 后的表达式中的值无法匹配代码中的 case 语句的时候,这时候要不就不做处理,要不就得在 switch 语句:中加⼊ default ⼦句。

switch (expression) 
{
 case value1: statement
 case value2: statement
 default:: statement
}

switch 后边的 expression 的结果不是 value1 ,也不是 value2 的时候,就会执⾏ default ⼦句。

例子 3:

就⽐如前⾯做的打印星期的练习,如果 day 的输⼊不是 1~7 的值,如果我们要提⽰:输⼊错误,则可 以这样完成代码:

#include <stdio.h> 
int main() 
{
	int day = 0; 
	scanf("%d", &day); 
	switch(day) 
	{
		case 1: 
		case 2: 
		case 3: 
		case 4: 
		case 5: 
			printf("工作日\n"); 
			break; 
		case 6: 
		case 7: 
			printf("休息日\n"); 
			break; 
		default: 
			printf("输入错误\n"); 
			break; 
	}
	return 0; 
}

4.4 switch 语句中的 case 和 default 的顺序问题

在 switch 语句中 case 子句和 default ⼦句有要求顺序吗?default 只能放在最后吗?其实,在 switch 语句中 case 语句和 default 语句是没有顺序要求的,只要你的顺序是满足实际需求的就可以。不过我们通常是把 default 子句放在最后处理的。

‍

基于STM32与FPGA的数据采集系统的设计与实现 数据采集系统在现代工程中起着至关重要的作用,用于实时获取和处理各种传感器或外部设备的数据。在本文中,我们将探讨如何基于STM32微控制器和FPGA(现场可编程门阵列)实现一个高效的数据采集系统。我们可以使用STM32的UART、SPI或I2C接口与各种传感器或外部设备进行通信,并通过GPIO口实现控制功能。在硬件连接完成后,我们可以通过STM32控制FPGA的配置和数据传输。STM32作为主控单元负责与外部设备进行通信和数据处理,而FPGA则用于高速数据采集和实时处理。具体的通信协议取决于连接的设备类型。 阅读详情

相关推荐

Android-S无线模块前瞻

WiFi - mainlane非强制 S 采用反射的方法直接加载wifiservice,直接hook在systemserver上,无编译依赖。gms可以动态替换wifi服务。 R 采用直接启动service的方式,wifiservice仍然map在systemserver上。 WiFi - 11ad接口支持 11ad被wifi联盟商业化为WIGIG,提供短距的60GHZ载波,理论速度为当前5G 11ac的6倍。市面上基本没有手机支持,需要独立的芯片支撑此功能。 传输距离为3m以内,外界d.

头铁的伦的博客 1042

Switch-Case详解

3、当switch后面括号内“表达式”的值与某个case后面的“常量表达式”的值相等时,就执行此case后面的语句。4、若所有的case中的常量表达式的值都没有与switch后面括号内“表达式”的值相等的,就执行default后面的语句,default是“默认”的意思。根据switch表达式中的值,依次匹配各个case中的常量。我们写分支结构时,当发现既可以使用switch-case,(同时,switch中表达式的取值情况不太多), 又可以使用if-else时,我们优先选择使用switch-case。

2301_76217337的博客 2516

Vitis HLS 学习指南与实践教程

Vitis HLS 学习指南与实践教程摘要:本文系统介绍了AMD Vitis HLS工具及其应用。HLS技术将C/C++代码自动转换为硬件描述语言,显著提升FPGA开发效率(5-10倍)。文章对比了HLS与传统RTL设计的优势,包括抽象级别高、开发周期短、代码重用性强等特点。详细讲解了Vitis HLS工具链的核心功能,包括支持的C/C++特性(如任意精度数据类型)、开发流程(项目创建-代码编写-仿真-综合)以及关键优化技术(流水线、循环展开、数组分割等编译指示)。通过具体代码示例展示了HLS设计方法,为F

weixin_44707118的博客 1400

switch case 语句(详细)

switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。switch 语句是非常的基础的知识,掌握起来也不难掌握,语法比较简单。但大部分人基本是知其然,不知其所以然。譬如 早期JDK只允许switch的表达式的值 int及int类型以下的基本类型,后期的JDK却允许匹配比较 字符串、枚举类型。 switch case 执行时,一定会先进行匹配,匹配成功返回当前 case 的值,再根据是否有 break,判断是否继续输出,或是跳出判断。

微微的猪食小窝 1万+

.NET 4.0下HttpWebRequest请求HTTPS报错?试试这个注册表修改方案

本文深入解析.NET 4.0下HttpWebRequest请求HTTPS报错问题,提供注册表修改方案以解决'基础连接已经关闭'错误。通过调整SchUseStrongCrypto注册表项,强制使用TLS 1.2等现代加密协议,确保安全连接。适用于企业环境部署和长期维护建议。

weixin_29310631的博客 355

U24时钟信号上升下降沿出现非单调性--简单分析

交换机U24时钟信号上升下降沿出现非单调性--简单分析

qq_45185504的博客 1131

介绍一下switch case break 函数

入门 易错点

lb3636363636的博客 728

别再折腾框架了!用华为应用市场官方渠道搞定GBOX,安全安装谷歌全家桶(鸿蒙HarmonyOS 3/4实测)

本文详细介绍了如何在鸿蒙系统上通过华为应用市场官方渠道安全安装GBOX,实现谷歌全家桶的无损使用。该方法避免了传统破解方式的安全风险,利用沙箱技术隔离运行环境,确保系统稳定性和数据安全。特别适合鸿蒙HarmonyOS 3/4用户安全使用谷歌生态应用。

weixin_29305313的博客 4751

C语言 | switch多分支

C语言if语句的嵌套 一般形式: if() if() 语句1 else 语句2 //内嵌if else if() 语句3 else 语句4 //内嵌if 应该注意if与else的配对关系。else总是与它上面的最近的未配对的if配对。 C语言switch多分支语句 如果分支较多,嵌套的if语句层数多,程序繁长而且可读性降低,因为C语言提供switch语句直接处理多分支选择。 一般形式 switch(表达式) { case 常量1:语句1 case 常量

weixin_48669767的博客 1847

【数据可视化-77】中国历年GDP数据可视化分析:Python + Pyecharts 深度洞察(含完整数据、代码)

通过上述可视化分析,我们可以清晰地看到中国历年GDP的变化趋势和产业构成。玫瑰图展示了2024年的产业构成,地图和柱状图展示了GDP的时空分布,双轴折线图和雷达图则分别展示了GDP总量与人均GDP的变化以及各行业的GDP贡献。希望这篇文章能帮助您更好地理解和分析中国历年GDP数据。如果您有任何问题或建议,欢迎在评论区留言!🎉。

qq_38614074的博客 1467

AutosarMCAL开发——基于TC367、EBTresos 开发之PORT

下图为开漏输出与推挽输出电路区别,推挽输出有两个极性相反的mos构成,一个管子导通另一个管子关闭以实现输出高低电平(电流较小不具备驱动能力),开漏输出仅使用一个MOS管,所以在这种模式下只能输出低电平,想要输出高电平需要外部提供(输入电流不可超过引脚最大电流显示否则会烧MCU)开漏输出:输出寄存器为低电平时,经过输出控制电路变成一个高电平,N-MOS导通,低电平从I/O引脚输出,输出寄存器为高电平时,P-MOS和N-MOS都是截止状态,电平无法通过,想要输出高电平需要外接上拉电阻。

qq_45583706的博客 1404

golang中switch流程case分支调用函数

package main import ( "fmt" "time" ) func main() { switch time.Now().Weekday().String() { case "Monday", "Tuesday", "Wednesday", "Thursday", "Friday": fmt.Println("it is time to work") fmt.Println(time.Now().Weekday().String()) default: fmt.P.

ens160的博客 1565

基于Python的彩票数据爬虫:数据抓取与趋势分析

爬虫是一种用于从互联网上自动抓取信息的程序。在抓取彩票数据时,我们首先需要确定目标网站并获取其网页内容,接着提取彩票的开奖结果信息并保存。彩票数据通常是以HTML表格或列表的形式展示,爬虫可以利用Python的requests和来抓取静态网页,或使用Selenium来抓取动态页面。在本篇博客中,我们深入探讨了如何使用Python编写彩票数据爬虫,抓取并分析彩票开奖结果。通过Python爬虫技术,结合数据分析与可视化工具,我们能够全面分析历史开奖数据,揭示彩票号码的频率分布、趋势变化以及未来的可能走势。

2201_76125261的博客 1937

java分支语句switch_浅谈Java中switch分支语句

前言:在程序中遇到多分支选择的时候,想必大家都喜欢用if...else if...else...语句,尤其是初学者,因为在了解switch语句之前,我也是只会用if...else语句。那么现在看完这篇随笔的介绍后,你们又有了另外一种选择,使用switch语句可以增强代码的可能性,当然switch也不是随随便便就能用的,它也有语法规则的约束,请看下面的阐述。一、switch简介和语法switch语句...

weixin_35806027的博客 336

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

switch分支语句

每天做小知识点复习,如果有大神,可以指正错误,: Switch语句是由一个控制表达式和多个case 组成。和if不同的是 switch 语句后控制的表达式只能是整形(long除外),不能是布尔型。case后面跟着代码块 语句格式: switch(expression) { case 条件conditions; { statement(s); brea

u011643186的专栏 480

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

if分支语句和switch分支语句的使用方法

学习记录if分支语句和switch分支语句的使用方法提示:以下是本篇文章正文内容,下面案例可供参考这篇文章主要说明了分支语句的基本写法,是js语法中的基础.

2301_77234654的博客 998

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

switch多分支语句及其相关概念详解

在实际生活中,我们常常要面对多种多样的选择,如果要用编程来解决这些问题,我们就可以用选择语句来解决问题。通常我们遇到这类问题都可能习惯去使用if语句来解决,但是如果选择太多使用if语句就会相当繁琐。而在这个时候,我们就需要一个能够将代码简化的语句,那就是 ---- switch语句一、switch语句及其相关概念详解。

qq_74215677的博客 2650

详述Switch分支语句

详述Switch分支语句 (1)Switch分支语句,主要提供一个选择功能,现在学习的比较初级,可以将其与if语句进行区分,if语句可以进行选择的比较简单只是单纯的进行真假的划分,即布尔类型的使用,而switch语句使用类型就比较宽泛了,包括byte、short、int、char、string、枚举等。 (2)Switch语句比较重要的几点就是break、default和return的使用 a. break指的是switch这个方法的结束,若在程序执行的过程中,有符合条件的case,但是没有break,程序

weixin_43822059的博客 3506

Switch分支语句

Switch分支语句 switch分支语句语法: switch ( 表达式 ) { case 常量1 :[{] 当表达式的值等于整型常量1时执行的语句; break;//当一种情况包含其他情况时 [}] case 常量2 :[{] 当表达式的值等于整型常量2时执行的语句; break; [}] --- default:[{] 当表达式的值不满足任何一个case的值时,执行的语句; [}] } 说明:上面中括号代表可有可无。 public c

wcx1841535630的博客 796

【C语言】 switch 分支语句

关于个人对于 switch 分支语句的理解, 常用的一些环境

qq_73575817的博客 925

C语言分支语句If语句和switch语句

其实,在 switch 语句中 case 语句和 default 语句是没有顺序要求的,只要你的顺序是满足实际需求的就可以。在使⽤ switch 语句的时候,我们经常可能遇到⼀种情况,比如 switch 后的表达式中的值无法匹 配代码中的 case 语句的时候,这时候要不就不做处理,要不就得在 switch 语句中加⼊ default ⼦句。我们知道,在生活中我们会遇见有不同结果的事件发生,就比如最简单的的,父母都希望孩子们成年后在谈恋爱,而未成年是不会允许的。我们输入8发现没有打印值,执行错误。

2302_81173352的博客 1557

分支语句if,switch

本文介绍了C语言中的分支结构,重点讲解了if-else和switch两种分支语句。if语句通过布尔表达式判断执行路径,需注意将比较运算符"=="误写为赋值运算符"="的情况;else遵循就近匹配原则。switch语句通过case标记入口,用break控制出口,default处理未匹配情况。文章通过代码示例展示了多分支条件判断的实现方式,并强调了代码书写规范的重要性。

2501_93107131的博客 1049

switch的分支语句

switch语句的介绍

wk200411的博客 535

03-分支语句(switch 语句)

想要实现上述的代码,使用 if else 语句就显得较为麻烦,因此就使用 switch 来实现。【需求】1、输入 1~5 就输出 “工作日”。输入 1,则 输出 星期一、星期二、星期三、星期四、星期五、星期六、星期七。当没有阻止它停止的语句,它就会一直依次的执行后面的所有语句,直到给这个。输入 2,则输出 星期二。输入 3,则输出 星期三。输入 7,则输出 星期七。当输入 2,则 输出 星期二、星期三、星期四、星期五、星期六、星期七。【比如】 输入 1,则输出 星期一。中并不认为适合错误。

2403_89841643的博客 790

JavaScript条件分支语句-switch

本文介绍了JavaScript中switch条件分支语句的基本结构和用法。switch语句通过case选项进行完全匹配,使用default处理无匹配情况,并利用break控制执行流程。文章通过鞋码选择示例演示了基本用法和穿透效果,以及一个计算一年中第几天的实际案例。该案例巧妙利用switch穿透特性累加月份天数,并处理闰年情况,最后输出总天数。switch语句适合处理多条件分支场景,合理使用可以简化代码逻辑。

students33的博客 1683

分支语句-switch

switch语句是一种特殊形式的if……else结构,用于判断条件有多个结果的情况。它把多重的else if语句改成更简易,可读性更高的形式。根据表达式的结果不同,而执行对应的分支,如果没有对应的值,则执行default分支。switch后的表达式必须是整型表达式case后的值必须是整型常量表达式。

2403_88753096的博客 493
上一篇: if-分支语句详解
下一篇: while - 循环语句
'撒野奔跑.
博客等级 码龄4年 185粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

'撒野奔跑.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值