C#中switch语句用法
1 不是每一个 case 都需要包含 break。如果 case 语句为空,则可以不包含 break,控制流将会继续后续的 case,直到遇到break为止。
char grade = \'C\';
switch (grade)
{
case \'A\':
case \'B\':
case \'C\': Console.WriteLine("CCC"); break;
case \'D\': Console.WriteLine("DDD"); break;
default: Console.WriteLine("无效的成绩"); break;
}
无论grad = A
或B
或C
都输出CCC
2 如果 case 语句中有处理语句,则必须包含 break 或其他跳转语句。
char grade = \'A\';
switch (grade)
{
case \'A\': Console.WriteLine("AAA");
case \'B\':
case \'C\': Console.WriteLine("CCC"); break;
case \'D\': Console.WriteLine("DDD"); break;
default: Console.WriteLine("无效的成绩"); break;
}
提示错误:控制不能从一个case标签("case \'A\':"
)贯穿到另一个case标签
3 一个 switch 语句可以有一个可选的 default case,出现在 switch 的结尾。default case 可用于在上面所有 case 都不为真时执行一个任务。default case 中的 break 语句不是必需的。
char grade = \'D\';
switch (grade)
{
case \'A\': Console.WriteLine("AAA"); break;
case \'B\':
case \'C\': Console.WriteLine("CCC"); break;
case \'D\':
default: Console.WriteLine("其他成绩"); break;
}
当grade=D
或其他值(不是ABC)
时输出其他成绩
default
语句块中也必须添加break
4 switch嵌套
int a = 100;
int b = 201;
switch (a)
{
case 100:
Console.WriteLine("100");
switch (b)
{
case 200: Console.WriteLine("200"); break;
case 201: Console.WriteLine("201"); break;
}
break;
case 101:
Console.WriteLine("101");
break;
default:
Console.WriteLine("其他值");
break;
}
输出100
、101
5 switch与for循环
5.1 break语句用于终止最近的封闭代码块,switch中的break不会终止for循环
for(int i = 0; i < 5; i++)
{
switch (i)
{
case 1: Console.Write("111"); break;
case 2: Console.Write("222"); break;
case 3: Console.Write("333"); break;
case 4: Console.Write("444"); break;
default: Console.Write("其他"); break;
}
Console.WriteLine("\t第" + i.ToString() + "次循环");
}
111.png
5.2 continue语句不能单独在switch中使用,可以在循环内的switch中使用,用于跳过当次循环,直接进入下一次循环。
for(int i = 0; i < 5; i++)
{
switch (i)
{
case 1: Console.Write("111"); break;
case 2: Console.Write("222"); continue; break;
case 3: Console.Write("333"); break;
case 4: Console.Write("444"); break;
default: Console.Write("其他"); break;
}
Console.WriteLine("\t第" + i.ToString() + "次循环");
}
222.png
注意第2次循环
没有输出
不建议在switch中使用continue
版权声明:本文为rainman原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。