using System; namespace Lesson17_条件分支语句Switch { class Program { static void Main(string[] args) { #region 知识点一 作用 //让顺序的代码产生分支 #endregion #region 知识点二 语法 //switch(变量) //{ // case 常量1: // //执行语句1 // break; // case 常量2: // //执行语句2 // break; // default: // //case条件都不满足执行默认语句 // break; //} //注意:常量只能是一个值,不能是条件/逻辑运算符 int a = 3; switch (a) { case 1: Console.WriteLine("a的值是1"); break; case 2: Console.WriteLine("a的值是2"); break; case 3: Console.WriteLine("a的值是3"); break; default: Console.WriteLine("没有满足的条件"); break; } //switch一般配合枚举使用 #endregion #region 知识点三 default可省略 string str = "123"; switch (str) { case "321": Console.WriteLine("值为1"); break; case "213": Console.WriteLine("值为123"); break; //不写default,什么都不会运行 } #endregion #region 知识点四 可自定义常量 char c = 'A'; const char c2 = 'A';//常量必须const初始化,且不能修改 switch (c) { case c2: Console.WriteLine("值为A"); break; case 'B': Console.WriteLine("值为B"); break; default: Console.WriteLine("没有满足的条件"); break; } #endregion #region 贯穿 int aa = 1; switch (aa) { case 1: Console.WriteLine("aa的值是1"); goto case 2; //贯穿到case 2 case 2: Console.WriteLine("aa的值是2"); break; case 3: Console.WriteLine("aa的值是3"); break; default: Console.WriteLine("没有满足的条件"); break; } //贯穿是指在一个case中没有使用break语句,直接跳转到下一个case //注意:贯穿会导致后续的case也被执行,除非遇到break或default switch (aa) { case 1://会直接进入case 2 case 2: case 3: case 4: Console.WriteLine("这是一个数字"); break; default: Console.WriteLine("这是一个其他类型"); break; } #endregion } } }