2

使用这样的 if 语句编写 for 循环的普遍共识是:

for (int i = 0; i < hi; i++) {
    if (some invalid condition) {
        continue;
    }

    if (another invalid condition) {
        continue;
    }

    //do stuff here after passing all the invalid conditions
}

for (int i = 0; i < hi; i++) {
    if (valid condition1 && valid condition 2 && ...) {
        //do stuff
}

在我看来,第一种编写方式更简洁,更便于调试,尽管它占用了更多行。我的主要问题是,以第二种方式编写它是否有任何优势。即使只有一个 if 语句,似乎以第一种方式编写它会更好,以便将来更容易维护/调试。

4

2 回答 2

2

循环中的“CONTINUE”非常罕见。在大多数情况下,在循环中遇到无效情况自然会导致“BREAK”。但是,您的示例没有任何问题,如果这符合您的业务逻辑,它可能确实更合适。

于 2012-11-05T05:54:01.507 回答
0

有些人不喜欢continue,因为它实际上是一个goto. 例如,考虑:

for (int i = 0; i < hi; i++) {
    ....
    do_this_for_each_full_iteration();
}

如果....包含任何continue语句,do_this_after_each_full_iteration()将被绕过。

这些人往往是不喜欢return某个功能中间的人。

于 2012-11-05T06:07:47.203 回答