switch(C# 参考)
来源:互联网 发布:风险判定矩阵表 编辑:程序博客网 时间:2024/05/01 05:08
switch(C# 参考)
switch 语句是一个控制语句,它通过将控制传递给其体内的一个 case 语句来处理多个选择和枚举。例如:
int caseSwitch = 1;switch (caseSwitch){ case 1: Console.WriteLine("Case 1"); break; case 2: Console.WriteLine("Case 2"); break; default: Console.WriteLine("Default case"); break;}
备注
控制传递给与开关的值匹配的 case 语句。switch 语句可以包括任意数目的 case 实例,但是任何两个 case 语句都不能具有相同的值。语句体从选定的语句开始执行,直到 break 将控制传递到 case 体以外。在每一个 case 块(包括上一个块,不论它是 case 语句还是 default 语句)的后面,都必须有一个跳转语句(如 break)。但有一个例外,(与 C++ switch 语句不同)C# 不支持从一个 case 标签显式贯穿到另一个 case 标签。这个例外是当 case 语句中没有代码时。
如果没有任何 case 表达式与开关值匹配,则控制传递给跟在可选 default 标签后的语句。如果没有 default 标签,则控制传递到 switch 以外。
示例
// statements_switch.csusing System;class SwitchTest { static void Main() { Console.WriteLine("Coffee sizes: 1=Small 2=Medium 3=Large"); Console.Write("Please enter your selection: "); string s = Console.ReadLine(); int n = int.Parse(s); int cost = 0; switch(n) { case 1: cost += 25; break; case 2: cost += 25; goto case 1; case 3: cost += 50; goto case 1; default: Console.WriteLine("Invalid selection. Please select 1, 2, or 3."); break; } if (cost != 0) { Console.WriteLine("Please insert {0} cents.", cost); } Console.WriteLine("Thank you for your business."); }}
输入
2
示例输出
Coffee sizes: 1=Small 2=Medium 3=LargePlease enter your selection: 2Please insert 50 cents.Thank you for your business.
下面的示例显示了空 case 标签可以从一个 case 标签贯穿到另一个。
// statements_switch2.csusing System;class SwitchTest { static void Main() { int n = 2; switch(n) { case 1: case 2: case 3: Console.WriteLine("It's 1, 2, or 3."); break; default: Console.WriteLine("Not sure what it is."); break; } }}
输出
It's 1, 2, or 3.
代码讨论
-
在前面的示例中,整型变量 n 用于 switch case。注意还可以直接使用字符串变量 s。在这种情况下,可以以下列方式使用 switch case:
switch(s){ case "1": // ... case "2": // ...}
C# 语言规范
有关更多信息,请参见 C# 语言规范中的以下各章节:
-
5.3.3.6 switch 语句
-
8.7.2 switch 语句
请参见
if-else(C# 参考)
The switch Statement
参考
C# 关键字if-else(C# 参考)
概念
C# 编程指南其他资源
C# 参考The switch Statement
- switch(C# 参考)
- base(C# 参考)
- abstract(C# 参考)
- 接口(C# 参考)
- partial(C# 参考)
- ref(C# 参考)
- sealed(C# 参考)
- virtual(C# 参考)
- const(C# 参考)
- extern(C# 参考)
- #region(C# 参考)
- #region(C# 参考)
- ref(C# 参考)
- base(C# 参考)
- enum(C# 参考)
- enum(C# 参考)
- as(C# 参考)
- params(C# 参考)
- WordWeb Pro 5.01
- PDF To Word Document 2.0.3
- 明晰C++内存分配的五种方法的区别
- ibm x306m-8e 上安装linux 使用raid1
- [转载]2007年最新骗局
- switch(C# 参考)
- 生成html的几种方案
- TJX theft tops 45.6 million card numbers——TJX公司被盗取45600000卡号
- 男人的心胸是被委屈撑大的
- 内存管理
- js控制media player
- 今天看到一个web2.0下的思考性文章,非常有价值!
- 解决基于CDialogBar类的继承问题
- web.xml和struts-config.xml的配置(ZT)