C# switch case 语句也是条件语句的一种,与上一节介绍的《C# if else语句》是类似的,但在判断条件的选择上会有一些局限性。
- switch(表达式)
- {
- case 值 1:
- 语句块 1;
- break;
- case 值 2:
- 语句块 2;
- break;
- ...
- default:
- 语句块 n;
- break;
- }
在这里,switch 语句中表达式的结果必须是整型、字符串类型、字符型、布尔型等数据类型,即参数必须是sbyte、byte、short、ushort、int、uint、long、ulong、char、string、bool或者枚举类型中的一种。
如果 switch 语句中表达式的值与 case 后面的值相同,则执行相应的 case 后面的语句块。如果所有的 case 语句与 switch 语句表达式的值都不相同,则执行 default 语句后面的值,语句块执行完毕后,执行break,使程序跳出switch语句。如果条件都不满足,则执行default中的语句块。
尽管c#不允许从一个分支直接进入到另一个分支,但是可以把多个分支标签附加到任意分支,只要这些分支标签之间没有插入可以执行语句。如下:
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
-
-
- namespace _20220731_2
- {
- class Program
- {
- static void Main(string[] args)
- {
- Console.WriteLine();
- string strNum = Console.ReadLine();
- switch(strNum)
- {
- case "1":
- case "2":
- case "3":
- Console.WriteLine("111");
- break;
- default:
- Console.WriteLine("000");
- break;
- }
- Console.ReadKey();
- }
- }
- }
switch语句与if...else if...else语句的区别
if...else if...else语句可以处理多分支选择的情况,但是它主要是对布尔表达式、关系表达式或逻辑表达式进行判断的,而switch分支语句主要对常量值进行判断。
如果在程序开发中,如果遇到多分支选择的情况,并且判断条件不是关系表达式、逻辑表达式或浮点类型,就可以使用switch语句,这样效率会更高一些。