我正在将一些Java代码转换为C#,并发现了一些标记为“ break”的语句(例如)
label1:
while (somethingA) {
...
while (somethingB) {
if (condition) {
break label1;
}
}
}
C#是否有等效项(当前读数不建议),如果没有,则除(例如)具有布尔标志以指示是否在每个循环结束时中断以外,没有任何转换(例如)
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
通常可以更轻松地打破嵌套循环,而不是跟踪布尔变量并在每个循环结束时反复检查它们。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句