C#中switch语句用法

2021-03-05 16:27

阅读:606

标签:使用   代码   出现   ring   default   int   ade   for   遇到   

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 = ABC都输出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;
}

输出100101

5 switch与for循环

5.1 break语句用于终止最近的封闭代码块,switch中的break不会终止for循环

for(int i = 0; i 

111.png

5.2 continue语句不能单独在switch中使用,可以在循环内的switch中使用,用于跳过当次循环,直接进入下一次循环。

for(int i = 0; i 

222.png

注意第2次循环没有输出

不建议在switch中使用continue

C#中switch语句用法

标签:使用   代码   出现   ring   default   int   ade   for   遇到   

原文地址:https://www.cnblogs.com/rainman/p/12895017.html


评论


亲,登录后才可以留言!