一、Switch语法
属于多分支语句,通过判断表达式的值,来决定执行哪个分支
Break用于结束某个case,然后执行switch之外的语句
Switch-开关:case-情况开关决定发生的情况
二、Switch基本语法
Switch(表达式){
Case 值1:
语句1
Break;
Case 值2:
语句2
Break;
……
Case 值n:
语句n
Break;
Default:
语句
Break;
}
举例:在控制台输入1,打印“一月”,输入2打印“二月”,输入3,打印“三月”,输入其他打印“其他月份”
首1、我们用if语言做一下!
using System; namespace Lesson12 { class MainClass { public static void Main (string[] args) { int a = int.Parse (Console.ReadLine()); if (a == 1) { Console.WriteLine ("一月"); } else if (a == 2) { Console.WriteLine ("二月"); } else if (a == 3) { Console.WriteLine ("三月"); } else { Console.WriteLine ("其他月份"); } } } }
2、用switch来执行
//switch switch(a){ case 1: Console.WriteLine ("一月"); break; case 2: Console.WriteLine ("二月"); break; case 3: Console.WriteLine ("三月"); break; default: //用于处理以上情况都不满足,需要执行的代码 Console.WriteLine ("其他月份"); break }
三、注意事项
整个defaul语句都可以舍掉,default语句最多只能由一个
Switch(表达式),里面的表达式值不能是浮点数
多个case可以执行同一个语句块,case的位置也可以任意
Case后面只要有语句,必须加上break,否则语法错误
Case后面的标签只能是常量或者常量表达式,要有一个具体的值,不能用变量作为case的标签。
举例说明: string s="yue"; //case 后面的值必须和表达式的值类型相同 //case 后面不能跟变量,只能是常量或常量表达式,case后面值必须是确定的值 //case 的顺序不影响最终的结果 //多个case可以执行同一个语句块 //多个case执行一个语句块 //如果case中包含代码,就必须要写break switch(s){ case "eryue": case "er": case "yue": Console.WriteLine ("二月"); break; case "dd": Console.WriteLine ("三月"); break; case "sdf": Console.WriteLine ("一月"); break; default: //用于处理以上情况都不满足,需要执行的代码 Console.WriteLine ("其他月份"); break; }
四、Switch和if的区别
If和switch都是实际开发中最最常见的语法
If语句的表达式值一般是bool类型
Switch语句通常会有break结束case语句的执行
using System; namespace Lesson12 { class MainClass { public static void Main (string[] args) { int a = int.Parse (Console.ReadLine()); //用if来写 // if (a == 1) { // Console.WriteLine ("一月"); // } else if (a == 2) { // Console.WriteLine ("二月"); // } else if (a == 3) { // Console.WriteLine ("三月"); // } else { // Console.WriteLine ("其他月份"); // } //switch 中的表达式的值不能是浮点数,只能是整数,字符串,一般使用整形 switch(a){ case 1: Console.WriteLine ("一月"); break; case 2: Console.WriteLine ("二月"); break; case 3: Console.WriteLine ("三月"); break; default: Console.WriteLine ("其他月份"); break; } string s="yue"; //case 后面的值必须和表达式的值类型相同 //case 后面不能跟变量,只能是常量或常量表达式,case后面值必须是确定的值 //case 的顺序不影响最终的结果 //多个case可以执行同一个语句块 //多个case执行一个语句块 //如果case中包含代码,就必须要写break switch(s){ case "eryue": case "er": case "yue": Console.WriteLine ("二月"); break; case "dd": Console.WriteLine ("三月"); break; case "sdf": Console.WriteLine ("一月"); break; default: //用于处理以上情况都不满足,需要执行的代码 Console.WriteLine ("其他月份"); break; } } } }
练习题:从控制台输入1-7,程序中通过switch来打印对应的星期几
int a = int.Parse (Console.ReadLine()); switch(a){ 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; default: Console.WriteLine ("星期日"); break; }