0

私はこのループを持っているとしましょう

while(condition1 && condition2 && condition3 && condition4){
     browseReddit();
}

if (!condition1){}
if (!condition2){}
if (!condition3){}
if (!condition4){}

4 つの条件のいずれかが false になると壊れる可能性があり、どの条件であるかに基づいて異なるコードを実行したいと考えています。理想的には、絶対に必要以上にそれらすべてを評価したくありません。仮定するとbrowseReddit()、それらすべてを再度評価する必要があります。

ループの後に if チェーンを置くことは、私が現在行っている方法です。よりクリーンな方法はありますか?あなたの答えでは何よりも簡潔さを大切にしてください。

4

3 に答える 3

2
while (1) {
    stop = 0;
    if (!condition1) {
        // condition 1 code
        stop = 1;
    }
    if (!condition2) {
        // condition 2 code
        stop = 1;
    }
    if (!condition3) {
        // condition 3 code
        stop = 1;
    }
    if (!condition4) {
        // condition 4 code
        stop = 1;
    }
    if (stop) {
        break;
    }
    browseReddit();
}
于 2010-11-19T03:24:12.230 に答える
1

最終編集:

while((condition1||function(){alert("condition1 failed!");}()) & 
      (condition2||function(){alert("condition2 failed!");}()) &
      (condition3||function(){alert("condition3 failed!");}()) &
      (condition4||function(){alert("condition4 failed!");}())){
   browseReddit();
}

jsfiddle: http://jsfiddle.net/ctrlfrk/HjftT/3/

于 2010-11-19T03:40:21.440 に答える
0

4 つの終了ケースすべてのテストを免除されないように、現在のコード サンプルの方法を使用します。

于 2010-11-19T03:31:31.197 に答える