for语句中包含if语句

时间:2012-11-05 05:28:51

标签: loops syntax if-statement for-loop coding-style

使用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语句,看起来第一种方式写它会更好,以便将来更容易维护/调试。

2 个答案:

答案 0 :(得分:2)

循环中的

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

答案 1 :(得分:0)

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

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

如果....包含任何continue语句,则会绕过do_this_after_each_full_iteration()

这些人往往不喜欢return从函数中间开始。