在做的时候,document.write不起作用(javascript)

时间:2017-07-01 18:43:29

标签: javascript html do-while document.write

<body>
  <form>    
    <input id="inicio" type="button" value="INICIO"/>   
  </form>

  <script>
    document.getElementById("inicio").addEventListener("click", comenzar, false);

    function comenzar (){
      var aleatorio = Math.round(Math.random()*100);

      // document.write(aleatorio);

      var numDado, intentos;
      numDado=0;
      intentos=0;

      do{
        numDado= prompt("Dime un numero");

        if (aleatorio>numDado){
          //alert("Mas alto");
          document.write("mas alto");
        }

        if(aleatorio<numDado){
          //alert("mas bajo");
          document.write("mas bajo");
        }
      } while(aleatorio!=numDado);

      alert("lo has logrado");
    }
  </script>
</body>

3 个答案:

答案 0 :(得分:1)

我认为这是一个无限循环。

试试这个

numDado = numDado * 1

这会将 numDado 转换为数字

还有另一个问题。

如果用户按下“确定”但没有输入任何内容,或者按下“取消” 游戏不会停止

你可以添加这个

numDado = prompt("Dime un numero");
if (numDado != null) {
    numDado = numDado * 1

或者这个

numDado = prompt("Dime un numero");
if(numDado == null) return;
numDado = numDado * 1

答案 1 :(得分:0)

numDado= prompt("Dime un numero"); // wrong way
numDado= Number(prompt("Dime un numero")); // right way

因为,提示始终将输入值作为字符串。如果您的输入值为数字字符串,则无法直接使用此字符串。所以你将数字字符串转换为数字然后使用它。

答案 2 :(得分:0)

我可以看到两个可能的问题。我没有时间测试它,但尝试以下方法:

1º我认为你可能有一个无限循环,所以试着像这样改变你的while循环:

while(numDado = prompt("Dime un número", "")) {
   ...
}

2º您必须将结果转换为数字(int),因为prompt()返回一个字符串。这可能会有所帮助:

var numInt = parseInt(numDado)