亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> C语言

掌握 C# switch 语句:语法、示例与最佳实践

C# switch 语句

学习如何用简洁、可读的 switch 语句替代复杂的 if-else 链——附带实战示例。

switch 语句通过评估单个表达式并执行匹配的 case 块来简化决策。相比冗长的 if-else 阶梯,switch 语法更简洁、易维护。

基本结构:

switch (variableOrExpression) {
    case value1:
        // value1 对应的代码
        break;
    case value2:
        // value2 对应的代码
        break;
    // …
    default:
        // 无 case 匹配时的代码
}

表达式匹配某 case 时,对应块运行直到 break 终止 switch。无匹配则执行 default 块,类似 else 子句。

缺少 break 会导致“穿透”继续执行后续 case,常引发 Bug。深入了解 C# break 语句 请参考官方文档。


示例 1:识别元音字母

using System;
namespace Conditional {
    class SwitchCase {
        public static void Main(string[] args) {
            char ch;
            Console.WriteLine("Enter an alphabet");
            ch = Convert.ToChar(Console.ReadLine());
            switch(Char.ToLower(ch)) {
                case 'a': Console.WriteLine("Vowel"); break;
                case 'e': Console.WriteLine("Vowel"); break;
                case 'i': Console.WriteLine("Vowel"); break;
                case 'o': Console.WriteLine("Vowel"); break;
                case 'u': Console.WriteLine("Vowel"); break;
                default: Console.WriteLine("Not a vowel"); break;
            }
        }
    }
}

运行输出:

Enter an alphabet X Not a vowel

用户输入转为小写后与元音 case 匹配。无匹配时显示默认消息。

因所有元音 case 执行相同动作,可合并:


示例 2:合并 Case

using System;
namespace Conditional {
    class SwitchCase {
        public static void Main(string[] args) {
            char ch;
            Console.WriteLine("Enter an alphabet");
            ch = Convert.ToChar(Console.ReadLine());
            switch(Char.ToLower(ch)) {
                case 'a':
                case 'e':
                case 'i':
                case 'o':
                case 'u':
                    Console.WriteLine("Vowel");
                    break;
                default:
                    Console.WriteLine("Not a vowel");
                    break;
            }
        }
    }
}

输出相同,代码更简洁。

switch 语句支持的数据类型:


示例 3:简单计算器

using System;
namespace Conditional {
    class SwitchCase {
        public static void Main(string[] args) {
            char op;
            double first, second, result;
            Console.Write("Enter first number: ");
            first = Convert.ToDouble(Console.ReadLine());
            Console.Write("Enter second number: ");
            second = Convert.ToDouble(Console.ReadLine());
            Console.Write("Enter operator (+, -, *, /): ");
            op = (char)Console.Read();
            switch(op) {
                case '+': result = first + second; Console.WriteLine("{0} + {1} = {2}", first, second, result); break;
                case '-': result = first - second; Console.WriteLine("{0} - {1} = {2}", first, second, result); break;
                case '*': result = first * second; Console.WriteLine("{0} * {1} = {2}", first, second, result); break;
                case '/': result = first / second; Console.WriteLine("{0} / {1} = {2}", first, second, result); break;
                default: Console.WriteLine("Invalid Operator"); break;
            }
        }
    }
}

运行示例:

Enter first number: -13.11 Enter second number: 2.41 Enter operator (+, -, *, /): * -13.11 * 2.41 = -31.5951

计算器接收两个操作数和一个运算符,用 switch 执行对应操作。输入用 ReadLine() 和 Read() 读取;更多 I/O 详见 C# 基础输入输出。

虽可用 if-else 替代,但 switch 对离散值意图更清晰、执行更快。

C语言

  1. 开关控制电路实战:从原理图到面包板的基础电路构建
  2. 续流二极管实验:用霓虹灯抑制感性尖峰
  3. 理解电气开关:类型、功能与应用
  4. 消除机械开关触点抖动
  5. 万用表全解析:从模拟到数字的进化指南
  6. C# break 语句:用法、时机与实战示例
  7. 掌握 C# continue 语句:高效跳过循环迭代的实战指南
  8. 掌握 C++ break 语句:跳出循环与 switch 的核心控制流
  9. 掌握 C++ switch-case 语句:语法、流程与计算器实战案例
  10. 掌握 C++ switch-case:语法、用法与实战示例
  11. C 语言基础语法精通:Token、分号、注释与标识符规范
  12. 精通Python Pass语句:实战指南