2017-02-11 177 views
-3

我是編碼的新手,我遇到了一些困難。任何人都可以告訴我我的代碼有什麼問題嗎?提前致謝。我試圖將每個夏季分配到1-4之間的數字,但它不起作用。我認爲我的條件陳述可能會關閉。隨機季節生成器

function randomSeason() { 
    var s = prompt("Enter a number between one and four"); 
    var r = Math.floor(Math.random() * 4) ; 
    var x= ""; 
    if (r===1) ; 
     x=" fall"; 
    alert(" It's fall"); 
    "else if"; (r===2); { 
      x =" spring"; 
     alert(" It's spring") ; 

    } 
     "else"; } 
    if (r===3); 
     x="winter"; 
    alert(" It's winter!"); { 

    } 
    "else if"; (r===4); 
    alert(" It's summer!"); 
{ 
alert(r); 

} 
+2

你爲什麼要在引號中加入「else if」和「else」? – PaulJ

+2

你有沒有試過谷歌的if-else語句? – Thibaut

+2

你也應該學習何時在代碼中使用「;」 – Thibaut

回答

-1
var seasons = ['spring', 'summer', 'fall', 'winter']; 
var which = Math.floor(Math.random() * 4); 

alert('It\'s ' + seasons[which] + '!'); 
+2

這有什麼用?這是一個沒有上下文的代碼片段,也沒有解釋OP代碼中的問題。除此之外,這並不試圖回答這個問題。 –

+0

他試圖隨機生成一個季節。我的回答顯示了一個非常簡單的方法。 –

+3

是的,但問題是*「誰能告訴我**我的代碼**有什麼問題?」*。當然,他們可以複製這個完全獨立的代碼片段,它不會知道他們做錯了什麼,但它並不真正回答OP的問題。 –

0

r總是會因爲你使用Math.floor0-3之間。
三種方式來解決這個問題:

  1. 使用Math.ceil而不是Math.floor
  2. 添加+1至Math.floor
  3. 結果調整您的條件,通過使用0-3而不是1-4
1

你想要做這樣的事嗎?

function randomSeason() { 
    var s = prompt("Enter a number between one and four"); 
    var r = Math.floor(Math.random() * 4) + 1); 
    var x= ""; 
    if (r===1){ 
     x="fall"; 
     alert("It's fall"); 
    }else if(r===2){ 
     x ="spring"; 
     alert("It's spring"); 
    }else if(r===3){ 
     x="winter"; 
     alert("It's winter!"); 
    }else if(r===4){ 
     x="summer"; 
     alert("It's summer!"); 
    }else{ 
     alert(r); 
    } 
} 

我鼓勵大家閱讀how to write if...else statement in Javascript

+0

那麼prompt()是什麼? – charlietfl

+0

你是對的,其實我不知道OP爲什麼把這行代碼放進去! –