一秒钟前,我遇到了这个问题,我从中提出了一些建议:“ break n”结构有名称吗?
对于人们来说,这是一种不必要的复杂方法,它可以指示程序摆脱双重嵌套的for循环:
for (i = 0; i < 10; i++) {
bool broken = false;
for (j = 10; j > 0; j--) {
if (j == i) {
broken = true;
break;
}
}
if (broken)
break;
}
我知道教科书喜欢说goto语句是魔鬼,而我本人一点也不喜欢它们,但这是否有例外的理由?
我正在寻找与n嵌套for循环有关的答案。
注意:无论您回答是,否还是介于两者之间,都不欢迎完全封闭的答案。特别是如果答案是否定的,请提供一个合理的正当理由(无论如何,这与Stack Exchange法规相距不远)。
goto
:后藤(C#参考) - “goto语句也很有用得到深度嵌套循环了。”
goto
实际上,在第一种情况下执行任何代码后,C#开关中实际上需要@JohnWu 进入另一种情况。不过,那是我使用过goto的唯一情况。
for (j = 10; j > 0 && !broken; j--)
则不需要该break;
语句。如果broken
在外部循环开始之前将的声明移到,那么如果可以这样编写,for (i = 0; i < 10 && !broken; i++)
那么我认为没有break;
必要。