笔记13:switch多分支选择语句

news2025/2/24 12:57:46

引例:

输入1-5中的任意一共数字,对应的打印字符A,B,C,D,E

int num = 0;
printf("Input a number[1,5]:");
scanf("%d",&num);
if( num == 1)
    printf("A\n");
else 
if(num==2)
    printf("B\n");
else if(num== 3)
    printf("C\n");
else 
if(num == 4)
    printf("D\n");
else 
if(num ==5 )
    printf("E\n");
else
    printf("Invalid Inut\n");

问题:有没有更加简洁的多分支选择结构语句?

switch-更简洁的多分支选择结构

wsitch(var)
{
    case x;
    //语句x1;
    //......var == x,时,执行这里的语句
    //语句xn;
    break;//每个分支代码的最后必须加上break,否则将继续向下执行。
    
    case y;
    //语句y1;
    //......var == y,时,执行这里的语句
    //语句yn;
    break;

    case z;
    //语句z1;
    //......var == z,时,执行这里的语句
    //语句zn;
    break;
    
    default;//默认情况,执行default的语句
}

示例分析:

#include<stdio.h>
int main( )
{
	int a= 1;//先定义三个变量
	int b = 2;
	char sign =0;//char是只有一个的整型

	printf("Input a sign:");//打印字符串
	scanf("%c",&sign);//输入字符
	getchar();//解决闪退问题

	switch(sign)//进行多分支选择
	{
		case'+'://如果键盘上输入的是+,就是进行加法运算,然后跳出;
			printf("%d + %d = %d\n",a, b, a+ b);
			break;
		case'-'://如果键盘上输入的是-,就是进行减法运算,然后跳出;
			printf("%d-%d=%d\n",a,b,a-b);
			break;
		default://如果上面都不满足;
			printf("Unsupport sign:%c\n", sign);
	}

	getchar();
	return 0;
}

运行结果:

更改1

现在根据所学,对引例进行更改;

#include<stdio.h>
int main( )
{
	int num= 0;//先定义三个变量

	printf("Input a number[1,5]:");//打印字符串
	scanf("%d",&num);//输入字符
	getchar();//解决闪退问题

	switch( num )//进行多分支选择
	{
		case 1://如果键盘上输入的是1,就是A,然后跳出
			printf("A\n");
			break;
		case 2://如果键盘上输入的是2,就是B,然后跳出
			printf("B\n");
			break;
		case 3://如果键盘上输入的是3,就是C,然后跳出
			printf("C\n");
			break;
		case 4://如果键盘上输入的是4,就是D,然后跳出
			printf("D\n");
			break;
		case 5://如果键盘上输入的是5,就是E,然后跳出
			printf("E\n");
			break;
		default://如果上面都不满足
			printf("Invalid Inut\n");
	}

	getchar();
	return 0;
}

运行结果:

switch 实验小结

1.switch 仅能适用于离散变量或值(整数值 ),如果用浮点型就会报错;
2.case 是分支入口,匹配成功后执行case 下的语句;
3.当语句全部执行后,需要使用 break 跳出执行分支;
4.default 分支不是必须的(类似于 else 分支不是必须的);

示例分析:

#include<stdio.h>
int main()
{
    int num = 0;

    printf("Input a number:");
    scanf("%d",&num);
	getchar();

    switch( num % 3)//%整除3取余数
    {
        case 0:
            printf("Object Number:%d\n",num);//需要的数
			break;//不要忘记break,如果没有就会把所有需要打印的都打印了
		case 1:
            printf("Bigger!\n");//数大了,减一就可以除三
			break;
		case 2:
            printf("Smaller!\n");//数小了,减一就可以除三
			break;
    }
    
    getchar();
    return 0;
}

运行结果:

switch语句的分支合并技巧

switch(var)
{
    case a;
    case b;
    语句1;//var == a||var == b时,执行这里的语句;
    ......
    语句n;
    break;
   
    case c;
    case d;
    语句1;//var == a||var == b时,执行这里的语句;
    ......
    语句n;
    break;

    default;
    ......
}

更改2

#include<stdio.h>
int main( )
{
	int num= 0;//先定义三个变量

	printf("Input a number[1,5]:");//打印字符串
	scanf("%d",&num);//输入字符
	getchar();//解决闪退问题

	switch( num )//进行多分支选择
	{
		case 1:
		case 2:
		case 3:
		case 4:
		case 5:
			printf("%c\n" , 'A'+(num-1) );
			//B-A=1,(B=A+1);C-A=2,(C=A+2)...E-A=4,(E=A+4)
			//注意,时‘’,不是“”
		break;

		default://如果上面都不满足
			printf("Invalid Inut\n");
	}

	getchar();
	return 0;
}

运行结果:

小结:

1.switch 是一种更简洁的分支选择结构
2.switch 仅能适用于整数(小数不可用)
3.case 是分支入口,匹配成功后执行 case 下的语句
4.当语句全部执行后,需要使用 break 跳出执行分支
5.多个 case 可合并在一起,执行相同的语句

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1902195.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

文化财经macd顶底背离幅图指标公式源码

DIFF:EMA(CLOSE,12) - EMA(CLOSE,26); DEA:EMA(DIFF,9); MACD:2*(DIFF-DEA),COLORSTICK; JC:CROSS(DIFF,DEA); SC:CROSSDOWN(DIFF,DEA); N1:BARSLAST(JC)1; N2:BARSLAST(SC)1; HH:VALUEWHEN(CROSSDOWN(DIFF,DEA),HHV(H,N1));//上次MACD红柱期间合约最大值 HH2:VALUEWHE…

HTML(26)——平面转换-旋转-多重转换-缩放

旋转 属性&#xff1a;transform:rotate(旋转角度) 角度的单位是deg。 取值为正&#xff0c;顺时针旋转取值为负&#xff0c;逆时针旋转 默认情况下&#xff0c;旋转的原点是盒子中心点 改变旋转的原点可以使用属性:transform-origin:水平原点位置 垂直原点位置 取值&a…

springboot+vue原创歌曲分享平台 LW +PPT+源码+讲解

3 平台分析 3.1平台可行性分析 3.1.1经济可行性 由于本平台是作为毕业设计平台&#xff0c;且平台本身存在一些技术层面的缺陷&#xff0c;并不能直接用于商业用途&#xff0c;只想要通过该平台的开发提高自身学术水平&#xff0c;不需要特定服务器等额外花费。所有创造及工作…

[BJDCTF 2nd]简单注入

sqlsqlsqlsqlsql又来喽 过滤了单双引号&#xff0c;等于符号&#xff0c;还有select等&#xff0c;但是这里没有二次注入 。扫描发现hint.txt 看出题人的意思是&#xff0c;得到密码即可获得flag。 select * from users where username$_POST["username"] and passw…

编写优雅Python代码的20个最佳实践

想要让你的代码像艺术品一样既实用又赏心悦目吗&#xff1f;今天我们就来聊聊如何通过20个小技巧&#xff0c;让你的Python代码从平凡走向优雅&#xff0c;让同行看了都忍不住点赞&#xff01; **温馨提示&#xff1a;更多的编程资料&#xff0c;领取方式在&#xff1a; 1. 拥…

最小代价生成树实现(算法与数据结构设计)

课题内容和要求 最小代价生成树的实现&#xff0c;分别以普利姆算法和克鲁斯卡尔算法实现最小代价生成树&#xff0c;并分析两种算法的适用场合。 数据结构说明 普利姆算法实现最小代价生成树的图采用邻接表存储结构&#xff0c;还有辅助数据结构&#xff0c;数组nearest&am…

Lambda架构

1.Lambda架构对大数据处理系统的理解 Lambda架构由Storm的作者Nathan Marz提出&#xff0c;其设计目的在于提供一个能满足大数据系统关键特性的架构&#xff0c;包括高容错、低延迟、可扩展等。其整合离线计算与实时计算&#xff0c;融合不可变性、读写分离和复杂性隔离等原则&…

揭秘“消费即收益”的循环购模式 商家智慧还是消费陷阱?

大家好&#xff0c;我是你们的电商策略顾问吴军。今天&#xff0c;我将带大家深入剖析一种新兴的商业模式——循环购模式&#xff0c;它以其独特的“消费赠礼、每日返利、提现自由”特性&#xff0c;在电商界掀起了不小的波澜。那么&#xff0c;这种模式究竟有何魅力&#xff1…

ip地址突然变了一个城市怎么办

在数字化日益深入的今天&#xff0c;IP地址不仅是网络连接的标识&#xff0c;更是我们网络行为的“身份证”。然而&#xff0c;当您突然发现您的IP地址从一个城市跳转到另一个城市时&#xff0c;这可能会引发一系列的疑问和担忧。本文将带您深入了解IP地址突变的可能原因&#…

Android ViewPostImeInputStage输入事件处理

InputDispatcher向InputChannel使用socket写入输入事件&#xff0c;触发InputEventReceiver调用来接收输入事件。 ViewPostImeInputStage处理view控件的事件 frameworks/base/core/java/android/view/InputEventReceiver.java dispatchInputEvent frameworks/base/core/jav…

Shell编程类-网站检测

Shell编程类-网站检测 面试题参考答法 a(1 2 3 4) echo ${a[0]} echo ${a[*]}这里声明一个数值&#xff0c;并选择逐个调用输出还是全部输出 curl -w %{http_code} urL/IPADDR常用-w选项去判断网站的状态&#xff0c;因为不加选择访问到的网站可能出现乱码无法判断是否网站down…

Nuxt框架中内置组件详解及使用指南(一)

title: Nuxt框架中内置组件详解及使用指南&#xff08;一&#xff09; date: 2024/7/6 updated: 2024/7/6 author: cmdragon excerpt: 本文详细介绍了Nuxt框架中的两个内置组件和的使用方法与功能。确保包裹的内容仅在客户端渲染&#xff0c;适用于处理浏览器特定功能或异步…

第1章 项目背景(学成在线),项目介绍,环境搭建

1.项目背景 1.1 在线教育市场环境 以下内容摘自https://report.iresearch.cn/content/2021/01/358854.shtml 在线教育行业是一个有着极强的广度和深度的行业&#xff0c;从校内到校外&#xff1b;从早幼教到职业培训&#xff1b;从教育工具到全信息化平台等等。 2020年的新…

智慧文旅(景区)解决方案PPT(42页)

智慧文旅解决方案摘要 行业分析中国旅游业正经历消费大众化、需求品质化、发展全域化和产业现代化的发展趋势。《“十三五”旅游业发展规划》的发布&#xff0c;以及文化和旅游部的设立&#xff0c;标志着旅游业的信息化和智能化建设成为国家战略。2018年推出的旅游行业安全防范…

Linux:Ubuntu18.04下开机自启动QT图形化界面

Linux&#xff1a;Ubuntu18.04下开机自启动QT图形化界面 Chapter1 Linux&#xff1a;Ubuntu18.04下开机自启动QT图形化界面一、创建rc.local文件二、建立rc-local.service文件三、启动服务查看启动状态四、重启 Chapter2 将QT应用作为开机自启动&#xff08;Linux系统&#xff…

ePTFE膜(膨体聚四氟乙烯膜)应用前景广阔 本土企业技术水平不断提升

ePTFE膜&#xff08;膨体聚四氟乙烯膜&#xff09;应用前景广阔 本土企业技术水平不断提升 ePTFE膜全称为膨体聚四氟乙烯膜&#xff0c;指以膨体聚四氟乙烯&#xff08;ePTFE&#xff09;为原材料制成的薄膜。ePTFE膜具有耐化学腐蚀、防水透气性好、耐候性佳、耐磨、抗撕裂等优…

跟着峰哥学java 第四天 商品分类 前后端显示

1.后端 1.1mybatis-plus分页查询配置 在商品热卖数据中&#xff0c;只让其显示八条数据 将要使用分页 也就是service.page方法 此时需要配置 mp拦截器 Configuration public class MybatisPlusConfig {Beanpublic PaginationInterceptor paginationInterceptor() {return …

基于Echarts进行图表组件的封装

什么是Echarts 是一个使用js实现的开源可视库&#xff0c;提供了多种图表&#xff0c;但是当我们在项目中进行使用的时候可能就是需要进行一系列的相关配置如&#xff1a; 标题&#xff0c;类型&#xff0c;x轴&#xff0c;y轴等&#xff0c;当我们使用较为频繁的时候就容易导…

[数据结构] 基于交换的排序 冒泡排序快速排序

标题&#xff1a;[数据结构] 基于交换的排序 冒泡排序&&快速排序 水墨不写bug &#xff08;图片来源于网络&#xff09; 目录 &#xff08;一&#xff09;冒泡排序 优化后实现&#xff1a; &#xff08;二&#xff09;快速排序 I、实现方法&#xff1a; &#…

Adobe Photoshop 2024 v25.5.1 中文激活版下载以及安装方法教程

软件介绍 Adobe Photoshop 2024 v25.5.1 是Adobe公司的最新版图像处理软件&#xff0c;它提供了强大的图像编辑工具和智能自动化功能&#xff0c;包括图像修复、色彩校正和滤镜效果&#xff0c;以满足专业人士和业余爱好者的需求。这款软件还支持矢量图形设计和实时协作&#…