在一个开关中的if是否足以突破C#中的开关?

时间:2017-10-10 14:49:43

标签: c#

我有这段代码:

switch (App.co)
{
    case CO.Random:
        var looking = true;
        while (looking)
        {
            // 
            if (xxx)
            {
                looking = false;
            }
        }
        break;

    case CO.FirstToLast:

我想做的是用这个替换它:

switch (App.co)
{
    case CO.Random:

        while (true)
        {
            // 
            if (xxx)
            {
                break
            }
        }
        break;

    case CO.FirstToLast:

我不确定处理中断的方式,并希望得到一些确认,如果在此处用中断替换看标志完全相同

2 个答案:

答案 0 :(得分:2)

break与使用它的位置有关。在您的第一个示例中,case被打破了。在第二个示例中,while循环将被打破。嵌套在for中的switch也是如此。

这也适用于forwhileswitch等块 - 退出最近的相关块,并在该块之后的下一行继续执行。

答案 1 :(得分:1)

根据MSDN:

  

break语句终止最近的封闭循环或   出现的switch语句。控制权传递给了   在终止语句后面的语句,如果有的话