Javascript break / continue语句

时间:2017-01-10 20:03:50

标签: javascript break continue

我无法解决这个问题:

var x = 1;

while (x == 1) {
}

function changeX(val) {
     if (val == 1) {
          x = 1;
     } else if (val == 0) {
          x = 0;
          break;
     }
}

无论我做什么,我都无法做到这一点。我想要做的是:当我选择“0”或输入或任何东西时,我希望循环停止工作。我必须使用break / continue。

无论我做什么,我都会错误地使用break或浏览器崩溃。

PS。在HTML部分我把

<input type="text" value="1" onchange="changeX(this.value)">

2 个答案:

答案 0 :(得分:0)

让您的代码有效:

虽然会阻止浏览器线程。因此,您无法点击。 做:

var x=false;
function react(){
     if(x){return;}
    //your code
    console.log("sth");//e.g.
    setTimeout(react,0);
}
react();

现在你可以做你的UI东西了

function changeX(val) { 
    if (val == 0) { 
        x = true;
    }
}

你真正想要的是什么:

var timer=false;

function input(val){
    if(timer){
        clearInterval(timer);
        timer=false;
    }
    if(val){
        timer=setInterval(function(){
        val++;
        alert(val);

        if(val==10){
            clearInterval(timer);
            timer=false;
        }
    }, 1000);
}

<input oninput="input(this.value)">

答案 1 :(得分:0)

 <h3>Break Statement</h3>
   <script>
        let num=0;
        while(num<5){
            num++;
            if((num==3)){
                break;
            }else{
                document.write("num is: "+num+"<BR/>")
            }
        }
        document.write("When if condition is true: while Loop Terminated");
    </script>


 <h3>Continue Statement</h3>
    <script>
        let val=0;
        while(val<5){
            val++;
            if(val==3){
                // skip the current loop iteration and jump to the next iteration
                continue;
            }
            document.write("val = "+val+"<BR/>");
        }
    </script>