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
}

それを書く最初の方法は、より多くの行を必要としますが、デバッグのためにはるかにクリーンで便利であるように私には思えます。私の主な質問は、2番目の方法でそれを書くことに何か利点があるかどうかです。ifステートメントが1つしかない場合でも、将来の保守/デバッグを容易にするために、最初の方法で記述した方がよいようです。

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();
}

にステートメントが....含まれている場合、はバイパスされます。continuedo_this_after_each_full_iteration()

returnこれらは、機能の途中から嫌うのと同じ人々である傾向があります.

于 2012-11-05T06:07:47.203 に答える