簡體   English   中英

Javascript 僅在另一個“if”失敗時執行“if”

[英]Javascript only execute an "if" if the other "if" fails

我一個月前開始學習 Javascript 並且我有一個疑問。 我正在編寫一個簡單的游戲,它會考慮一個隨機數,您必須在嘗試用完之前猜測它。 為了確定玩家是否猜對了數字,我做了以下(簡化代碼):

start(){
num=documentGetElementById("num").value;
attempts=10;
}
try(){
attempts=attempts-1;
if(num==random)documentGetElementById("message").innerHTML="You have won.";
if(attempts==0)documentGetElementById("message").innerHTML="You have lost.";
}

這里發生的情況是,當您在最后一次嘗試(還剩 1 次嘗試)中猜出數字時,它說您輸了。 所以我的問題是:如何優先考慮 if(num==random)...?

- -編輯 - -

完整代碼:

-HTML:

<div id="game">
  <div id="message"></div>
  <div id="status"></div>
  <div id="think"></div>
  <div id="start">
    <button id="start-button" class="boto-inici" onClick="start()"><span>START</span></button>
  </div>
  <div id="try">
    <label for="tryinput">Number:</label>
    <input type="text" id="tryinput"/>
    <button class="try-button" onClick="try()"><span>TRY</span></button>
  </div>
</div>

-JS:

function start(){
  document.getElementById("start").style.display="none";
  document.getElementById("try").style.display="block";
  document.getElementById("message").style.display="block";
  document.getElementById("status").style.display="block";
  document.getElementById("message").innerHTML="I've thought a number between 1 and 100";
  document.getElementById("status").innerHTML="You have 10 attempts.";
  random = Math.floor(Math.random()*100);
  attempts=10;
}

function try(){
  attempts=attempts-1;
  document.getElementById("status").innerHTML="You have " + attempts + " attempts left.";
  var num=document.getElementById("tryinput").value;
  if(num>random)document.getElementById("message").innerHTML="The number you chose is bigger.";
  if(num<random)document.getElementById("message").innerHTML="The number you chose is smaller.";
  if(num==random){
    document.getElementById("message").innerHTML="You won.";
    document.getElementById("status").innerHTML="The number I thought was the " + random + " .";
    document.getElementById("try").style.display="none";
    document.getElementById("start").style.display="block";
  }
  if(attempts==0){
    document.getElementById("try").style.display="none";
    document.getElementById("message").innerHTML="You lost.";
    document.getElementById("status").innerHTML="The number I thought was the " + random + " .";
    document.getElementById("start").style.display="block";
  }
  if(isNaN(num)){
    alert("Please write a number.");
  }
}

它可能包含一些 id 錯誤,因為我翻譯了它。 希望能幫助到你。

這不是優先事項 兩個測試都按照給定的順序運行。

您的問題是,如果第一個測試通過,您根本不想進行第二個測試。

使用else以便第二個測試僅在第一個失敗時運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM