1. 简介
在编写程序时,经常需要根据不同的条件执行不同的代码,这时候就需要一种选择结构,根据条件来执行不同的代码。switch(开关)语句就是一种选择结构,它提供了在多个可选方案之间进行选择的功能,比if语句更加简洁明了。
2. switch语句的基本格式
switch语句中需要一个表达式,该表达式的值将用于匹配case语句的值。switch语句的基本格式如下:
switch(expression)
{
case value1:
// 当expression的值等于value1时执行的代码
break;
case value2:
// 当expression的值等于value2时执行的代码
break;
.
.
.
case valueN:
// 当expression的值等于valueN时执行的代码
break;
default:
// 当expression的值不匹配任何一个case值时执行的代码
break;
}
其中,expression是switch语句中的表达式,value1、value2、valueN是常量,每个常量后面必须跟一个冒号“:”,case语句中写的所有代码在expression等于与其匹配的值时才会被执行。如果expression的值与所有的case语句都不匹配,则执行default语句中的代码(如果没有default语句则不执行任何操作)。在每个case语句的最后都要加上break语句,因为如果不加break语句,将会一直向下执行,直到遇到break语句或者switch语句结束。
3. switch语句的应用场景
switch语句通常用于一些比较简单的场景,例如根据用户输入的数字选择打印不同的信息,或者根据日期判断是星期几。下面是一个简单的例子:
int day = 3;
string dayOfWeek;
switch (day)
{
case 1:
dayOfWeek = "星期一";
break;
case 2:
dayOfWeek = "星期二";
break;
case 3:
dayOfWeek = "星期三";
break;
case 4:
dayOfWeek = "星期四";
break;
case 5:
dayOfWeek = "星期五";
break;
case 6:
dayOfWeek = "星期六";
break;
case 7:
dayOfWeek = "星期日";
break;
default:
dayOfWeek = "错误的日期";
break;
}
Console.WriteLine(dayOfWeek);
在上面的例子中,通过一个整型变量day表示日期,根据日期在switch语句中选择相应的dayOfWeek字符串内容。
4. switch语句的注意事项
4.1 case语句的值必须是常量
在switch语句中,case语句中的值必须是常量,不能是变量或者表达式。例如,下面的代码是错误的:
int x = 3;
switch (x)
{
case x + 1: // 错误!case语句的值必须是常量
break;
}
4.2 break语句的作用
break语句用于跳出switch语句,如果没有break语句,则会一直执行到switch语句结束或者遇到break语句为止。例如:
int x = 2;
string message = "";
switch (x)
{
case 1:
message = "x是1";
case 2:
message = "x是2"; // 这里会执行到,因为没有break语句
case 3:
message = "x是3"; // 这里也会执行到,因为上一个case语句没有break语句
break;
default:
message = "x不是1、2、3";
break;
}
Console.WriteLine(message); // 输出结果为:x是3
在上面的例子中,当x等于2时,由于case 2语句没有break语句,所以下一个case 3语句也会执行。因此,当执行完switch语句后,message的值是“x是3”。
4.3 default语句的位置
在switch语句中,default语句可以放在任何位置,但是通常是最后一个case语句后面。例如:
int x = 5;
string message = "";
switch (x)
{
case 1:
message = "x是1";
break;
case 2:
message = "x是2";
break;
default:
message = "x不是1、2";
break;
case 3:
message = "x是3"; // 这里会报编译错误,因为default语句不是在最后面
break;
}
Console.WriteLine(message);
5. 总结
switch语句是一种很有用的选择结构,可以根据表达式的值来选择不同的代码分支。switch语句的基本格式非常简单明了,但是需要注意一些细节问题,如case语句的值必须是常量、break语句的作用、default语句的位置等。在实际编程中,可以根据具体的需求使用switch语句,简洁明了的代码结构可以提高代码可读性和可维护性。