我正在参加一个关于 Java 的 session ,演讲者说使用 break
是一种不好的做法。 while
中的声明环形。他说可以使用,但从“良好的编码实践”的角度来看不应该使用。他无法令人满意地解释为什么会这样。
但是,他还提到,此限制在 for
的情况下无效。环形。有人能解释一下吗?
编辑:我不是在谈论 while(true)。一般来说,任何时间(条件)。
最佳答案
IMO,在 while 循环中使用 break
并没有那么糟糕。但我能猜到说话者为什么这么说。
所以如果我有一个像这样的 while 循环:
while (condition1) {
if (condition2) {
break;
}
// do other stuff
}
这样做绝对可以使代码更短:
while(condition1 && !condition2) {
// do other stuff
}
演讲者可能认为 while 循环中的 break
是不必要的,因为您可以将所有条件写在应该写的地方,即在括号中。
然而,事实并非如此。如果我有这个 while 循环:
while (condition1) {
// do other stuff
if (condition2) {
break;
}
}
如何更改它,使其不使用 break
?
while (condition1) {
// do other stuff
if (condition2) {
condition1 = false;
}
}
这对我来说似乎不太好。
让我们将其放入一段有意义的代码中。您认为哪个更具可读性:
while(noWallInFront) {
walk();
if (sawFriend) {
sayHi();
break;
}
}
或
while(noWallInFront) {
walk();
if (sawFriend) {
sayHi();
noWallInFront = false;
}
}
显然是第一个,对吧?第二个听起来就像你把你的 friend 当作一堵墙一样。
关于java - 在Java中的 `break`循环中使用 `while`语句有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39844724/