java - 在Java中的 `break`循环中使用 `while`语句有什么问题?

标签 java while-loop break

我正在参加一个关于 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/

相关文章:

java - 设置plane_mode_on已从android.provider.Settings.System移至android.provider.Settings.Global,返回只读值

java - 将 python 与其他语言(.Net、Java ....)集成的机制是什么

python - 在有限的尝试游戏中猜猜我的号码

python - 如何根据程序中的用户输入给出错误消息?

break - 什么时候休息合适?

java - finally子句java中的break语句

python-3.x - python : Unable to call function when in while loop

java - 列表数据包含其他列表中的所有确切数据

java - 使用字符串引用属性

循环数组卡在 if 语句中