C# 在回路封闭开关块中断开并继续

C# 在回路封闭开关块中断开并继续,c#,loops,switch-statement,C#,Loops,Switch Statement,我有一些C代码,看起来像这样: while(condition) { switch(anumber) { case 0: //do something break; case 1: //do something break; //and so on } } 作为编程高手,我最近在我的词汇表中添加了关键字continue。在做了一

我有一些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
是一个好主意吗?例如,在性能方面是否有任何差异,或者这只是两种语法不同但在其他方面非常相似的方法来实现相同的结果?

如果切换后有一些代码行,continue关键字将忽略它们。尝试此操作,您将看到不同的:

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


如果开关后有一些代码行,continue关键字将忽略它们。尝试此操作,您将看到不同的:

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


首先,它在语法上是正确的。一般来说,谈论一个想法-在
switch
语句中使用
continue
并不是一种坏的做法。但是,它会降低可读性并编译调试,我不会使用它<代码>继续属于
,因此会破坏结构嵌套。此外,如果此循环中只有
开关
,则根本不需要此
conitnue
break
将提供相同的行为,因为没有其他语句。首先,它在语法上是正确的。一般来说,谈论一个想法-在
switch
语句中使用
continue
并不是一种坏的做法。但是,它会降低可读性并编译调试,我不会使用它<代码>继续属于
,因此会破坏结构嵌套。此外,如果此循环中只有
开关
,则根本不需要此
conitnue
break
将提供相同的行为,因为没有其他语句。在您的示例中,break和continue之间有很大的区别。如果仔细看第一个示例,break是switch语句的一部分。在第二个示例中,continue是while循环的一部分。在第一个例子中,break与每种情况匹配,在第二个例子中continue与while循环匹配。是的,我知道。我只是想展示与OP不同的部分。另外,如果同时使用continue和break,这可能会让人困惑,因为它们所指的不是通常所指的相同结构。你是对的,我完全没有想到这一点。但我认为为了可读性,如果这是行为上的唯一区别,我会坚持使用break。switch语句不是循环,当您在switch语句块中编写Continue关键字时,它与包含switch语句的循环相关。简而言之,当您使用关键字continue时,它会重新启动当前正在解释的循环。在您的示例中,break和continue之间有很大的区别。如果仔细看第一个示例,break是switch语句的一部分。在第二个示例中,continue是while循环的一部分。在第一个例子中,break与每种情况匹配,在第二个例子中continue与while循环匹配。是的,我知道。我只是想展示与OP不同的部分。另外,如果同时使用continue和break,这可能会让人困惑,因为它们所指的不是通常所指的相同结构。你是对的,我完全没有想到这一点。但我认为为了可读性,如果这是行为上的唯一区别,我会坚持使用break。switch语句不是循环,当您在switch语句块中编写Continue关键字时,它与包含switch语句的循环相关。简而言之,当您使用关键字continue时,它将重新启动当前正在解释的循环。