如何在崩溃浏览器时停止此循环?

时间:2016-10-06 18:33:05

标签: javascript html

我必须为这个项目使用while循环,我知道for循环可能更容易,但只是必须这样做。

该功能需要根据用户想要查看的工作职责数来获取用户输入(1-5),然后调用数组编号(0-4),因此如果他们说3个工作职责,数组项0, 1,2需要打印。这是我到目前为止,它不断崩溃浏览器,不知道如何控制循环,并确保它打印出所有数组值而不是一个。

<script type="text/javascript">
       function jobduties() {
       var x = document.getElementById("input").value;
       var y = x-1;
       var duties = ["Sales", "Customer Service", "Management", "Driving", "Cleaning"]; 
       while (x>=0) {
       var y
       document.getElementById("print").innerHTML=duties[y];
       break;
       }       
     }
</script>

<form>

点击查看此工作的工作职责。

  这里的工作职责

4 个答案:

答案 0 :(得分:1)

在while循环内增加x

的值

你的x总是一样的,因此条件总是满足因此循环不会中断

答案 1 :(得分:1)

1 - 你的x永不减少,所以你在这永远的循环中存货 2 - 你内心不需要当地人。

 function jobduties() {
   var x = document.getElementById("input").value;
   var y = 0;
   var duties = ["Sales", "Customer Service", "Management", "Driving", "Cleaning"]; 
   while (x > y) {

   document.getElementById("print").innerHTML=duties[y];
   y++;

   }       
 }

答案 2 :(得分:0)

首先,摆脱在循环中重新创建y,因为它已经被创建了。其次,你的while循环是无限的,因为x总是大于0或小于它,因此,你的while循环将运行并变为无限或将被跳过。要解决while循环崩溃的问题,请尝试增加x。

假设i = x = 3(用户输入),我们将通过减去循环中的每一步来迭代直到它达到0。在每一步之后我们将打印i,这将给我们3,2,1

//Your code with input goes here
for(var i=x; i=0;i--){
document.Write(i);
}

答案 3 :(得分:0)

这是另一个刚刚经过测试的解决方案:

&#13;
&#13;
function jobduties() {
  document.getElementById("print").innerHTML = ""
  var x = parseInt(document.getElementById("input").value);
  var y = 0
  var duties = ["Sales", "Customer Service", "Management", "Driving", "Cleaning"];
  while (y < x) {
    document.getElementById("print").innerHTML = document.getElementById("print").innerHTML + "<br>" + duties[y];
    y = y + 1;
  }
}
&#13;
Number of duties:
<input type="Number" id="input">
<button onclick="jobduties()">Click me</button>
<p id="print"></p>
&#13;
&#13;
&#13;