Closed. This question is opinion-based。它当前不接受答案。
想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。
3年前关闭。
我正在参加有关Java的会议,演讲者说在
但是,他还提到在
编辑:我不是在谈论while(true)。一般情况下(条件)。
您绝对可以通过以下方式使代码更短:
发言者可能认为while循环中的
然而,这种情况并非如此。如果我有这个while循环:
您如何更改它以使其不使用
这对我来说似乎并不好。
让我们将其放入一段有意义的代码中。您认为哪个更具可读性:
要么
显然是第一个吧?第二个听起来像是您像对待墙一样对待您的朋友。
想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。
3年前关闭。
我正在参加有关Java的会议,演讲者说在
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;
}
}
显然是第一个吧?第二个听起来像是您像对待墙一样对待您的朋友。