簡體   English   中英

If和else語句中兩個具有不同值的相同變量

[英]Two same variables with different values in If and else statement

我應該只將投資回報投資回報 更改為payback1payback2嗎? 還是有更好的方法呢?

function play() {
    var bet = document.getElementById("bet").value;
    var pips = Math.round((Math.random()*5)+1);

    if(pips == 1|| pips == 3 || pips == 5){
      document.getElementById("answer").innerHTML = "No pay";
    }
    else if(pips == 2|| pips == 4) {
      var payback = 1.25*bet;
      document.getElementById("answer").innerHTML = "You'll receive: "+payback;

    }
    else {
      var payback = 1.50*bet;
      document.getElementById("answer").innerHTML = "You'll receive: "+payback;
    }
}

第15行:“回報”已定義。

我認真嘗試了一個明智的頭銜。

您可以只在開始時聲明它,然后在if / else上對其進行修改:

function play() {
var bet = document.getElementById("bet").value;
var pips = Math.round((Math.random()*5)+1);
var payback;

if(pips == 1|| pips == 3 || pips == 5){
  document.getElementById("answer").innerHTML = "No pay";
}
else if(pips == 2|| pips == 4) {
  payback = 1.25*bet;
  document.getElementById("answer").innerHTML = "You'll receive: "+bet;

}
else {
  payback = 1.50*bet;
  document.getElementById("answer").innerHTML = "You'll receive: "+bet;
}

}

除了聲明問題之外,為您的下注程序獲得未標准化的分布是否很可愛? 您的16與其他數字沒有相同的機會。 機會只有其余的1/2。

請查看您所用的分布以及更多更好的分布值。

 var i, count = {}, v; for (i = 0; i < 12000; i++) { v = Math.round((Math.random() * 5) + 1); count[v] = (count[v] || 0) + 1; } document.write('<pre>' + JSON.stringify(count, 0, 4) + '</pre>'); count = {}; for (i = 0; i < 12000; i++) { v = Math.floor((Math.random() * 6) + 1); count[v] = (count[v] || 0) + 1; } document.write('<pre>' + JSON.stringify(count, 0, 4) + '</pre>'); 

您應該可以內聯並跳過變量聲明:

document.getElementById("answer").innerHTML = "You'll receive: "+(1.25*bet);

暫無
暫無

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

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