基于哪个条件在Javascript中打破了while循环,最简洁的分支方法是什么?

时间:2010-11-19 03:17:20

标签: javascript structure program-flow

说我有这个循环

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

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

它可能被4个条件中任何一个变为假,并且我想根据它是哪个来执行不同的代码。理想情况下,我不想对它们进行全面评估。假设browseReddit()迫使我们再次对它们进行评估。

在循环之后放置一个if链是我当前正在做的事情。有更干净的方式吗?在你的答案中,我们重视所有其他事项。

3 个答案:

答案 0 :(得分: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();
}

答案 1 :(得分: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/

答案 2 :(得分:0)

我会按照您当前的代码示例中的方式进行操作,这样您就不会免于测试所有四个退出案例。