Nic*_*ner 65 c# loops goto break
如果我有嵌套循环,我想立刻打破所有这些循环怎么办?
while (true) {
// ...
while (shouldCont) {
// ...
while (shouldGo) {
// ...
if (timeToStop) {
break; // Break out of everything?
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
在PHP中,break
接受一个参数来确定要突破的循环数.可以在C#中完成这样的事情吗?
有什么可怕的东西,比如goto
?
// In the innermost loop
goto BREAK
// ...
BREAK: break; break; break;
Run Code Online (Sandbox Code Playgroud)
Mic*_*son 82
将嵌套循环提取到函数中然后可以使用return从任何地方退出循环,而不是中断.
Fad*_*man 65
引入另一个控制标志并将其放入所有嵌套状态,如下所示.也取代了你的while(true)条件
bool keepLooping = true;
while (keepLooping) {
// ...
while (shouldCont && keepLooping) {
// ...
while (shouldGo && keepLooping) {
// ...
if (timeToStop) {
keepLooping = false;
break; // break out of everything?
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
And*_*rew 27
Goto在被滥用时只是丑陋的.要退出某些嵌套的最内层循环,它是可以接受的.但是......人们不得不问为什么那里有如此多的筑巢.
简答:不.