我正在将一些 Java 代码转换为 C#,并且发现了一些标记为“break”的语句(例如)
label1:
while (somethingA) {
...
while (somethingB) {
if (condition) {
break label1;
}
}
}
在 C# 中是否有等价物(目前的阅读表明没有),如果没有,除了(比如说)有 boolean 标志来指示是否在每个循环结束时中断(例如)
bool label1 = false;
while (somethingA)
{
...
while (somethingB)
{
if (condition)
{
label1 = true;
break;
}
}
if (label1)
{
break;
}
}
// breaks to here
我很想知道为什么 C# 没有这个,因为它似乎不是很邪恶。
最佳答案
您可以使用 goto
直接跳转到标签。
while (somethingA)
{
// ...
while (somethingB)
{
if (condition)
{
goto label1;
}
}
}
label1:
// ...
在类 C 语言中,goto
通常会更干净地打破嵌套循环,而不是跟踪 boolean 变量并在每个循环结束时重复检查它们。
关于c# - 在 C# 中是否有相当于 Java 的标记中断或解决方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1548154/