C#的Switch语句3(如何为一段代码应用多个case标签)

文章目录

  • 上一篇文章
  • 中断函数执行
  • 堆叠case
  • switch中实用的字符串函数
    • 将字符串转换为小写
  • switch例子

上一篇文章

C#的Switch语句2

中断函数执行

switch语句内部可以使用return语句,这为控制程序流程和函数返回值提供了一种直接的方式。

当在switch语句块中遇到return语句时,它不仅仅会终止当前switch块的执行,而且会直接结束包含该switch语句的整个函数的执行,并立即返回到调用该函数的地方。

也就是说return不仅可以用于传递一个值给调用者(如果函数有返回类型的话),还会立即跳出当前函数,不论switch结构后面是否还有其他代码。这与break语句只跳出switch块,而不结束函数执行形成了对比。

使用return可以在处理特定情况后立即结束函数,避免了不必要的代码执行,提高了代码的效率。这对于那些一旦满足某个条件就可以确定函数返回值的情况尤为有用。

public int GetDayOfWeekString(int day)
{switch (day){case 1:return 1; // 星期一case 2:return 2; // 星期二// ... 其他case ...case 7:return 7; // 星期日default:return -1; // 无效的天数}
}

在这个例子里,一旦匹配到正确的case,函数立即返回对应的值并结束执行,无需额外的跳出语句或后续逻辑。

堆叠case

在C#,case语句支持一种称为“堆叠”的特性,允许你将多个case标签放在同一代码块前,使得这些不同的case值共享相同的执行逻辑。这对于需要相同处理结果的情况非常有用,可以减少代码重复,提高可读性和维护性。

假设我们有一个程序,需要根据分数等级输出不同的信息,但B+和A-实际上在处理上是一样的,我们可以这样写:

        string grade = "A-"; // 假设grade是我们要评估的分数等级switch (grade){case "A":Console.WriteLine("优秀");break;case "A-": case "B+": //堆叠caseConsole.WriteLine("非常好");break;case "B":case "C+": Console.WriteLine("良好");break;case "C":case "D+":Console.WriteLine("及格");break;default:Console.WriteLine("需要努力");break;}

在这里插入图片描述

switch中实用的字符串函数

将字符串转换为小写

进行字符串判断的时候,我们通常需要将其转换为小写或者大写,避免因为首字母大写或其他大小写问题,导致两个相同的字符串不匹配,在C#中,ToLower() 是 System.String 类的一个实例方法,用于将字符串中的所有字符转换为小写。

string text = "Hello, WORLD!";
string lowerText = text.ToLower();
Console.WriteLine(lowerText); // 输出: hello, world!

运行结果:
在这里插入图片描述
该函数不改变原始字符串,而是返回一个新的转换后的字符串。

switch例子

基础的switch已经学完了,接下来用一个简单的例子结束学习吧,下面是一个示例程序。这个程序会提示用户输入一个命令,然后根据输入(忽略大小写)执行相应的动作。

        while (true){Console.WriteLine("请输入一个命令(help, info, exit): ");string input = Console.ReadLine();// 将输入转换为小写,以便进行不区分大小写的比较string command = input.ToLower();switch (command){case "help":Console.WriteLine("可用命令: help, info, exit");break;case "info":Console.WriteLine("这是一个简单的命令处理器示例");break;case "exit":Console.WriteLine("正在退出程序。再见!");return; // 退出主函数,结束程序default:Console.WriteLine("未知命令。请再次尝试。");break;}}

在这个例子中:

程序启动后,会进入一个无限循环,等待用户输入。

用户输入的内容被读取后,立即通过ToLower()方法转换为小写形式,确保后续的switch语句可以不考虑输入的大小写。

switch语句根据转换后的命令执行不同的操作:

如果输入是"help",则显示可用的命令列表。

输入"info"时,输出一段描述程序的信息。

输入"exit"时,程序会打印一条消息并使用return语句退出Main方法,从而结束程序。

对于任何其他输入,程序会告知用户这是未知命令并要求重新输入。

在这里插入图片描述

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

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

相关文章

CleanShot X for Mac v4.7 屏幕截图录像工具(保姆级教程,小白轻松上手,简单易学)

Mac分享吧 文章目录 一、准备工作二、部分特有功能效果1、截图软件的普遍常用功能(画框、箭头、加文字等)都具备,不再详细介绍2、ABCD、1234等信息标注(每按一下鼠标,即各是A、B、C、D...等)3、截图更换背…

SD-WAN组网如何帮助企业降低网络成本?

企业在构建IT网络时,常常面临节省费用和提升效益的挑战。IT开销主要包括设备、网络和维护成本。利用OgCloud的SD-WAN组网方案,企业可以有效地应对这些问题。 企业专线网络的高成本问题 企业专线的费用较高,而且数据不能同时在多条专线上传输。…

【linux】Valgrind工具集详解(十六):交叉编译、移植到arm(失败)

1、源码下载 官网:https://valgrind.org/ 源码:https://valgrind.org/downloads/current.html 2、配置 ./configure CC=arm-linux-gnueabihf-gcc \CXX=arm-linux-gnueabihf-g++ \AR=arm-linux-gnueabihf-ar \--host=arm-linux-gnueabihf \--pr

Postman如何在本地测试服务接口

项目架构及背景: 网关微服务多个业务微服务 服务部署在阿里云上,文件服务器用的是OSS。配置参数用Nacos进行统一管理。通过构建docker镜像包部署各业务微服务以及网关服务。 需求: 某一个业务微服务中开发了若干接口,需要在本地…

如何使用Indicator-Intelligence收集与威胁情报相关的域名和IPv4地址

关于Indicator-Intelligence Indicator-Intelligence是一款针对威胁情报的强大数据收集工具,该工具可以帮助广大研究人员通过威胁情报活动中生成的静态文件来查找与威胁行为相关的域名和IPv4地址。 需要注意的是,请在目标组织授权后再使用该工具进行安…

IFM易福门SV7500SV4200涡街流量计型号都是进口的。

IFM易福门SV7500SV4200涡街流量计型号都是进口的。工程余料。

数据质量管理-规范性管理

数据质量管理简介 数据质量管理是一个持续性的管理动作,有些人在做数据质量管理的时候会陷入一步到位的误区,想要通过一个工具、平台,或者一套质检规则就完成整体的数据质量管理,而实际数据质量管理从数据接入的那一刻就需要介入…

热门常用在线免费工具

图片&绘图 免费且易于使用的在线PDF工具 nullhttps://tools.pdf24.org/zh/免费的在线图片压缩工具 TinyPNG – Compress WebP, PNG and JPEG images intelligentlyFree online image compressor for faster websites! Reduce the file size of your WEBP, JPEG, and PNG…

互联网应用主流框架整合之SpingMVC运转逻辑及高级应用

Spring MVC处理器的执行过程 在SpringMVC的流程中,它会把控制器的方法封装为处理器(Handler),为了更加灵活,SpringMVC还提供了处理器的拦截器,从而形成了一条包括处理器和拦截器的执行链,即HandlerExecutionChain&…

第21篇 Intel FPGA Monitor Program的使用<四>

Q:如何编译运行创建好的Intel FPGA Monitor Program工程呢? A:上一篇的Nios II汇编语言简易应用程序创建完成后,点击Intel FPGA Monitor Program的Action-->Compile即编译程序,在Info&Errors区域显示编译结果…

[Vulnhub] BrainPan BOF缓冲区溢出+Man权限提升

信息收集 Server IP AddressPorts Open192.168.8.105TCP: $ nmap -p- 192.168.8.105 -sC -sV -Pn --min-rate 1000 Starting Nmap 7.92 ( https://nmap.org ) at 2024-06-10 04:20 EDT Nmap scan report for 192.168.8.105 (192.168.8.105) Host is up (0.0045s latency). N…

XTDrone-多机仿真-配置教程

启动python脚本生成多机launch文件 cd ~/XTDrone/coordination/launch_generator python3 generator.py将生成出来的launch文件复制到PX4固件的launch文件夹 cp ~/XTDrone/coordination/launch_generator/multi_vehicle.launch ~/PX4_Firmware/launch/启动多机PX4仿真 cd ~/…

MyBatis框架基础

文章目录 1 MyBatis概述2 MyBatis入门2.1 相关依赖2.2 properties配置文件2.3 预编译SQL 3 基本操作3.1 新增操作3.2 删除操作3.3 更新操作3.4 查询操作 4 动态SQL4.1 XML映射文件4.2 if/set/where标签4.3 foreach标签4.4 sql/include标签 5 参考资料 1 MyBatis概述 MyBatis是…

每日复盘-202406019

今日关注: 20240619 六日涨幅最大: ------1--------300868--------- 杰美特 五日涨幅最大: ------1--------300462--------- 华铭智能 四日涨幅最大: ------1--------300462--------- 华铭智能 三日涨幅最大: ------1--------300462--------- 华铭智能 二日涨幅最大…

IntelliJ IDEA软件下载安装手册:从官方下载到配置启动全流程详解(Windows版)

一、访问官方下载页面 首先,您需要通过官方渠道访问IntelliJ IDEA的下载页面。在您的浏览器中输入官方网址: https://www.jetbrains.com/idea/download/,进入官方下载页面。 二、选择合适的版本下载 在官方下载页面,您将看到多…

Linux虚拟机安装nginx并进行浏览器访问 - 附带常见问题和常用指令(实施必备)

1、Linux安装Nginx 1.1、下载Nginx安装包 Linux Nginx-1.25.5 官方其他版本 1.2、解压安装包 tar -zxvf nginx-1.25.5.tar.gz 1.3、安装依赖包 由于我使用的是1.25.5版本,所以需要加入依赖包 # yum install pcre pcre-devel # yum install zlib-devel 1.4、配置…

[linux] 系统的基本使用

用户系统: 之前提到,linux是个多用户系统,所以要使用linux,首先你得是个用户 用户:普通用户管理员 每一个用户有自己的用户名密码, 会话(session):一个终端使用服务器的全过程 从你用户登录,到你…

Office--加载宏-CS上线

免责声明:本文仅做技术交流与学习... 目录 关于宏上线的格式: 操作流程: 其他office文本的上线格式一样: 关于宏上线的格式: doc宏病毒: 1-生成格式为dotm 只要点启用宏就上线 2-生成格式为()word 97-2003 .doc) 被杀 操作流…

关于Java的一点小小知识点(杂谈)

1,Resource和Autowire的区别 在java代码中可以使用Autowire或者Resource注解方式进行装配,这两个注解的区别是: Autowire默认按照类型装配,默认情况下它要求依赖对象必须存在如果允许为null,可以设置它required属性为…

JAVA实现利用phantomjs对URL页面(网页)进行转图片保存

一、前期准备 1、下载phantomjs工具 地址:https://phantomjs.org/download.html 解压到指定文件夹,后续代码要调用该工具,记住路径 2、准备好模板NetToPicMoban.js 用于给phantomjs提供需要执行的js,具体放在那看自己的需求&…