在循环封闭的开关块中断开并继续

时间:2015-11-23 09:14:36

标签: c# loops switch-statement

所以我有一些看起来像这样的C#代码:

while(condition)
{
    switch(anumber)
    {
        case 0:
            //do something
            break;
        case 1:
            //do something
            break;
        //and so on
    }
}

作为编程的菜鸟,我最近在我的词汇表中添加了关键字continue。在做了一些研究后,我发现了这个:

  

continue语句与封闭循环有关

所以我的代码也应该像这样工作:

while(condition)
{
    switch(anumber)
    {
        case 0:
            //do something
            continue;
        //and so on
    }
}

但编写不会产生编译错误的代码并非一切。在循环封闭的开关块中使用continue是个好主意吗?例如,在性能方面是否有任何区别,或者这些只是两种语法上的不同,但实现相同结果的方式却非常相似?

1 个答案:

答案 0 :(得分:4)

如果切换后有一些代码行,则continue关键字将忽略它们。试试这个,你会看到不同的:

if (restString.isEmpty() || contains(nextNodeEdge, restString)) {
  return true;
}

while(condition)
{
    switch(anumber)
    {
        case 0:
            //do something
            break;
        case 1:
            //do something
            break;
        //and so on
    }
    Console.WriteLine("it's a message");
}