C#中switch case语句的用法
在C#编程中,switch case
语句是一种常用的多分支选择结构,提供了一种简洁而高效的方式来处理多个条件分支。本文将详细介绍 switch case
语句的用法,包括基本语法、注意事项和高级用法。
一、基本语法
switch case
语句根据一个表达式的值,从多个选项中选择一个分支执行。基本语法如下:
switch (expression)
{
case constant1:
// 代码块
break;
case constant2:
// 代码块
break;
// 更多case语句
default:
// 默认代码块
break;
}
expression
:需要判断的表达式,其结果类型必须是整型、字符型、枚举型或字符串。case constant
:每个case
标签后跟一个常量值,表示一个待匹配的条件。break
:用于终止当前case
分支,跳出switch
语句。default
:可选的默认分支,当所有case
都不匹配时执行。
二、示例
1. 基本示例
以下是一个基本示例,根据输入的星期几输出对应的活动:
using System;
class Program
{
static void Main()
{
Console.WriteLine("请输入星期几(1-7):");
int day = Convert.ToInt32(Console.ReadLine());
switch (day)
{
case 1:
Console.WriteLine("星期一:去健身");
break;
case 2:
Console.WriteLine("星期二:学习编程");
break;
case 3:
Console.WriteLine("星期三:去游泳");
break;
case 4:
Console.WriteLine("星期四:看电影");
break;
case 5:
Console.WriteLine("星期五:打游戏");
break;
case 6:
Console.WriteLine("星期六:去爬山");
break;
case 7:
Console.WriteLine("星期天:休息");
break;
default:
Console.WriteLine("输入错误!");
break;
}
}
}
2. 字符串类型的switch case
C#支持在 switch case
中使用字符串:
using System;
class Program
{
static void Main()
{
Console.WriteLine("请输入一个水果名:");
string fruit = Console.ReadLine();
switch (fruit)
{
case "苹果":
Console.WriteLine("你选择了苹果。");
break;
case "香蕉":
Console.WriteLine("你选择了香蕉。");
break;
case "橙子":
Console.WriteLine("你选择了橙子。");
break;
default:
Console.WriteLine("未知的水果。");
break;
}
}
}
三、注意事项
1. 必须有break或其他跳出语句
每个 case
分支必须以 break
、return
或 goto case
等语句结束,否则会发生“贯穿”(fall-through),即执行完当前 case
的代码后继续执行下一个 case
的代码,直到遇到 break
或结束 switch
语句。
2. 常量值唯一且类型匹配
每个 case
标签后的常量值必须唯一且类型与 expression
匹配。否则会导致编译错误。
四、高级用法
1. 多个case共享代码
多个 case
可以共享同一段代码,只需列出所有 case
标签,并在最后一个 case
后编写代码块:
int number = 2;
switch (number)
{
case 1:
case 2:
case 3:
Console.WriteLine("number 是 1、2 或 3");
break;
default:
Console.WriteLine("number 不是 1、2 或 3");
break;
}
2. 使用goto case跳转
在某些复杂场景下,可以使用 goto case
从一个 case
跳转到另一个 case
:
int number = 1;
switch (number)
{
case 1:
Console.WriteLine("number 是 1");
goto case 2;
case 2:
Console.WriteLine("跳转到 case 2");
break;
default:
Console.WriteLine("number 不是 1 或 2");
break;
}
分析说明表
功能 | 描述 | 示例代码 |
---|---|---|
基本使用 | 根据表达式值选择一个分支执行 | switch (day) { case 1: ... break; case 2: ... break; ... } |
字符串类型 | 使用字符串作为表达式和 case 标签 |
switch (fruit) { case "苹果": ... break; ... } |
多个case共享代码 | 多个 case 标签共用一段代码 |
case 1: case 2: case 3: ... break; |
goto case | 从一个 case 跳转到另一个 case |
goto case 2; |
需要break或跳出语句 | 每个 case 分支必须以 break 、return 或 goto 等结束 |
case 1: ... break; |
常量值唯一且类型匹配 | case 标签后的常量值必须唯一,且与表达式类型匹配 |
case 1: ... break; case 2: ... break; |
五、总结
C#中的 switch case
语句提供了一种简洁而高效的方式来处理多个条件分支。通过了解其基本语法、注意事项和高级用法,可以在实际开发中灵活运用 switch case
,提高代码的可读性和维护性。希望本文能帮助你更好地理解和使用C#中的 switch case
语句。