-1
在我的代碼,我有一個行的代碼,使不同的NaN這個神祕的結果,總是:爲什麼是減法的結果等於爲NaN
console.log("The dragon now has"+ (4-totalDamage) + "health left!")
現在totalDamage
等於給自己加了一個名爲damageThisRound
變量,這是一個從1到5的隨機整數(也包括1和5)。現在,我希望這條線來記錄一些像:
The dragon now has 1 health left!
,而是,我得到:
The dragon now has NaNhealth left!
爲什麼結果等於爲NaN,而不是像1,2或3的整數(這應該是(4-totalDamage)
唯一可能的結果)?
全碼:
var slaying = true
var youHit = Math.floor(Math.random()*2)
var damageThisRound = Math.floor(Math.random*5 + 1)
var totalDamage = 0
while (slaying) {
if (youHit) {
console.log("You hit the dragon!");
totalDamage += damageThisRound;
if (totalDamage >= 4) {
console.log("You defeated the mighty dragon!");
slaying = false;
} else {
console.log("The dragon now has"+ (4-totalDamage) + "health left!")
youHit = Math.floor(Math.random() * 2);
}
} else {
console.log("You lose!");
slaying = false;
}
}
請顯示完整的代碼示例,以便我們可以重現該問題。具體說明'totalDamage'是如何設置的。 – j08691
totalDamage可能是字符串格式。嘗試:'4-parseInt(totalDamage)'(並且確保totalDamage並非已經是NaN,與以前的隨機數相加) – dievardump
'totalDamage'是'NaN'或不能轉換爲有效數字。提供一個完整的示例。 –