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

上一篇文章

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+": //堆叠case
                Console.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方法,从而结束程序。

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

在这里插入图片描述

  • 20
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

水智

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

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

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

打赏作者

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

抵扣说明:

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

余额充值