2015-11-04 78 views
1

我正在嘗試學習Javascript,而我試圖弄清楚的一個問題是函數。我對我認爲的else語句有問題,但我不確定它有什麼問題。我得到了一個意外的令牌語法錯誤{...我知道這意味着什麼。如果我將(numHours < 8)移到else的{,那個錯誤消失,但是不會運行。我的其他情況做錯了嗎?其他條件問題

var sleepCheck = function (numHours) { 
    if (numHours => 8) { 
     return "You're getting plenty of sleep! Maybe even too much!"; 
    }  
    else (numHours < 8) { 
     return "Get some more shut eye!"; 
    } 
} 
sleepCheck(10); 
sleepCheck(5); 
sleepCheck(8); 
+1

'nunHours =>'應該可能是'numHours> ='。值得注意的是,由於'> = 8'和'<8'是互斥的,所以一個簡單的「if..else」就可以了,根本不需要第二個if。 –

+0

感謝您的建議! – Becky

+0

=>不是> =。投票結束。 「這個問題是由於無法再現的問題或簡單的印刷錯誤造成的,雖然類似的問題可能在這裏討論,但這個問題的解決方式不太可能有助於未來的讀者。」 – GameAlchemist

回答

6

你缺少另一if

變化:

else (numHours < 8) { 

else if (numHours < 8) { 

但是,你並不真正需要的是第二個條件可言,因爲如果numHours不是更大t漢或等於8(即第一if條件是false),那麼你可以只使用else任何檢查numHours小於8,因爲它是因爲它比8

不大於或等於你的條件只是:

if (numHours => 8) { 
    return "You're getting plenty of sleep! Maybe even too much!"; 
}  
else { // has to be < 8 if not >= 8 
    return "Get some more shut eye!"; 
} 

:你在你的第一個條件拼寫錯誤nunHours

+0

感謝您的好評!我在發帖後發現了'nunhours',錯誤的是> =號......我試圖在網站上學習它,它需要這樣做。謝謝! – Becky

+0

沒問題,很高興幫助:) – nem035

2

否則,您可以直接刪除(NUMHOURS < 8),並有類似的東西:

if (numHours >= 8) { 
    return "You're getting plenty of sleep! Maybe even too much!"; 
}  
else { 
    return "Get some more shut eye!"; 
} 

只有當它不符合if條件時,纔會輸入else。如果你想這要取決於價值只有兩種不同的行爲,這是實現,否則你可以用別的若是喜歡,最好的辦法:

if (numHours >= 8) { 
    return "You're getting plenty of sleep! Maybe even too much!"; 
}  
else if (numHours == 7) { 
    return "Get some more shut eye!"; 
} 
else if (numHours == 6) { 
    return "Get some more shut eye!"; 
} 
else { 
return "less than 6"; 
} 

希望它是明確的:)