我正在将一些Java代码转换成C#,发现了一些带有标签的"break"语句(例如)。
在C#中有没有相应的功能(目前的阅读表明没有),如果没有,除了使用布尔标志来指示是否在每个循环结束时中断(例如),还有其他的转换方法吗?
我对为什么C#没有这个功能感兴趣,因为它似乎并不邪恶。
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#没有这个功能感兴趣,因为它似乎并不邪恶。
return
语句比较简洁。 - Robert Harveygoto
语句仅限于所在方法的范围内,并且无法跳过变量声明。你无法跳出所在方法。即使在现今的C#中,这一点仍然适用。 - Hazel へいぜる