2013-07-09 87 views
0

我是新來的JavaScript。我正在嘗試製作一個練習程序,它可以在最小值和最大值之間生成一個隨機數。我在下面的程序中遇到了一個問題。 var2 + min無法正常工作。如果我用實際值替換變量min,那麼它就可以工作。我究竟做錯了什麼?隨機發生器,最小和最大價值不工作

var var1=Math.random() 
var min = prompt("Enter Min value:") 
var max = prompt("Enter max value:") 
alert("min is "+min+" max is "+max) 
var var2=var1*(max-min) 
var var3=var2+min 
var var4=Math.floor(var3) 
alert("var1= "+var1+" var2= "+var2+" var3= "+var3+" Var4 "+var4) 
+1

解釋這是行不通的。當然,到目前爲止,我們已經從經驗中得出了什麼,但它有助於其他人添加這些細節。 –

回答

0

var1var2var3等都是不好的變量名。不要使用它們。

您的代碼不工作,因爲prompt返回一個字符串。 1 - "2"-1,但1 + "2""12",作爲加法運算符用於字符串連接。

解析字符串轉換爲整數:

var min = parseInt(prompt("Enter Min value:"), 10); 
+1

我認爲這些變量名被介紹給分解,試圖調試它原始表達式:) –

+0

是。我添加了變量來調試每一步中發生的事情。 –

+0

我試過使用parseInt。它現在有效。謝謝。 –

0

prompt返回string所以你需要minmax轉換爲number

var min = Number(prompt("Enter Min value:")); 
var max = Number(prompt("Enter max value:")); 
+0

感謝您的反饋意見。有用。 –

3

用途:

var min = parseInt(prompt("Enter Min value:"), 10); 
var max = parseInt(prompt("Enter max value:"), 10); 

的問題在於這些變量包含字符串,因此包含+的表達式正在執行字符串連接而不是數字添加。

當你在學習,請與;結束髮言的習慣。 Javascript對於要求這樣做並不寬鬆,但是你應該明確地說明它 - 分號可以省略的規則有點神祕。

+0

非常感謝,現在有效。 –

相關問題