Loops 内部包含if语句的for循环语法

Loops 内部包含if语句的for循环语法,loops,syntax,if-statement,for-loop,coding-style,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(in

关于使用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
相对于

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

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

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

有些人不喜欢“继续”
,因为它非常有效a
goto
。例如,考虑:

for (int i = 0; i < hi; i++) {
    ....
    do_this_for_each_full_iteration();
}
for(int i=0;i
如果
包含任何
continue
语句,则将跳过
在每次完整迭代后执行此操作()


这些人往往都不喜欢从函数中间返回
return

break呢,为什么更可取?
break
的争议性较小,因为它退出循环,而不是假装当前迭代成功运行。但仍有人不喜欢
break
。然而
continue
return
意味着如果您想“在完成之前”执行某些操作你必须在循环体/函数的末尾以及每次
继续
/
返回
时添加它。好的一点,尽管我认为这整件事都被夸大了。我打赌90%不使用
转到
的人不知道为什么。