Javascript没有运行整个函数(JSLInt没有提到)

时间:2016-08-14 20:29:21

标签: javascript

我在jslint.com和jshint.com上检查了我的javascript代码,它说没有错误。但出于某种原因,我的代码并没有按照我的意愿运行。似乎while语句不起作用或者在while语句之后停止:

      function aMode() {
          
          personData();
          
          if (Enchance1.value == 10) {
             Taken = Taken + (1.25 * EnhanceLevel1.value);
             
          }
          
          if (Enhance1.value == 20) {
             Taken = Taken + (EnhanceLevel1.value * 1.37);
          
          }
          
          if (Enhance2.value == 10) {
             taken2 = t


----------


Taken2 + (1.25 * EnhanceLevel2.value);
             
          }
          
          if (Enhance2.value == 100) {
             Taken2 = Taken2 + (EnhanceLevel2.value * 1.37);
             
          }
          
          while (HP1 <= 0) {
              HP1 = HP1 - Taken2;
              tries1 = tries1 + 1;
    
          }   
          
          while (HP2 <= 0) {
              HP2 = HP2 - Taken1;
              tries2 = tries2 + 1;
    
          }
          
          if (tries1 > tries2) {
              //document.getElementById('personWon').innerHTML = person1.value;
              alert(person1.value + "won!");
          } else if (tries1 < tries2) {
              //document.getElementById('personWon').innerHTML = person2.value;
              alert(person2.value + "won!");
          }
          
          //alert("test"); <- test
      }

问题是,在HTML中,它通过按钮运行函数时,它只从if语句运行到第一个while语句。我知道这一点,因为我把alert("test")放在最后,看它是否运行整个代码。我知道我拼写了正确的函数,因为如果我把alert("test")放在开头,它就可以了。这是按钮的代码:<button id="typeMode" onclick="aMode()">Click me!</button>。更具体地说,它是在具有某一类的div中。我提出的另一件事是&#34;使用严格;&#34;在我的javascript代码的第一行。

我使用了错误的语法吗?是因为我忘了放一个分号&#39 ;;&#39;还是什么?

感谢任何帮助!

1 个答案:

答案 0 :(得分:3)

如果HP 小于或等于0,则您的循环正在运行。你可能想要交换比较。

  while (HP1 >= 0) {
      HP1 = HP1 - damageTaken2;
      hits1 = hits1 + 1;

  }   

  while (HP2 >= 0) {
      HP2 = HP2 - damageTaken1;
      hits2 = hits2 + 1;

  }

  if (hits1 > hits2) {
      //document.getElementById('playerWon').innerHTML = player1.value;
      alert(player1.value + "won!");
  } else if (hits1 < hits2) {
      //document.getElementById('playerWon').innerHTML = player2.value;
      alert(player2.value + "won!");
  } else {
      alert("draw!");
  }