2017-07-31 25 views
0

我正在練習一些代碼,並得到一些錯誤,任何人都可以幫助我。SyntaxError:期望的表達式,得到關鍵字'else'

顯示錯誤,如:

SyntaxError: expected expression, got keyword 'else'

下面是代碼

var ageJohn = 25; 
var heightJohn = 165; 

var ageSmith = 60; 
var heightSmith = 180; 

var ageMalli = 24; 
var heightMalli = 170; 

var scoreJohn = heightJohn + 5 * ageJohn; 
var scoreSmith = heightSmith + 5 * ageSmith; 
var scoreMalli = heightMalli + 5 * ageMalli; 


if (scoreJohn > scoreSmith && scoreJohn > scoreMalli); { 
    console.log('John wins with ' + scoreJohn); 
} else if (scoreSmith > scoreJohn && scoreSmith > scoreMalli); { 
    console.log('Smith wins with! ' + scoreSmith); 
} else(scoreMalli > scoreJohn && scoreMalli > scoreSmith); { 
    console('Mary wins with ' + scoreMalli); 
} 
+0

你可以看到的錯誤只是你有的錯誤之一。 在你的else if語句中,括號之前的末尾不應該有分號。 這裏是關於爲什麼不整篇文章: [您的指導分號] [1] [1]:https://www.codecademy.com/blog/78 其他(scoreMalli> scoreJohn && scoreMalli > scoreSmith){ console('Mary with with + scoreMalli);} 您的'else'語句在括號內不能包含任何內容。 如果你想檢查'(scoreMalli> scoreJohn && scoreMalli> scoreSmith),你應該將它重構爲'else if'。 –

回答

2

你有一個額外的;。該錯誤是在這裏:

} else if (scoreSmith > scoreJohn && scoreSmith > scoreMalli); { 

更改爲

} else if (scoreSmith > scoreJohn && scoreSmith > scoreMalli) { 

而且隨着如果有類似的問題

2

刪除其他兩個線路 「;」應該是:

if (scoreJohn > scoreSmith && scoreJohn > scoreMalli) { 
    console.log('John wins with ' + scoreJohn); 
} else if (scoreSmith > scoreJohn && scoreSmith > scoreMalli) { 
    console.log('Smith wins with! ' + scoreSmith); 
} else(scoreMalli > scoreJohn && scoreMalli > scoreSmith) { 
    console('Mary wins with ' + scoreMalli); 
} 
0

你不應該有一個;在你的if語句之後,刪除它應該可以正常工作。

if (scoreJohn > scoreSmith && scoreJohn > scoreMalli) { 
     console.log('John wins with ' + scoreJohn); 
    } else if (scoreSmith > scoreJohn && scoreSmith > scoreMalli) { 
     console.log('Smith wins with! ' + scoreSmith); 
    } else(scoreMalli > scoreJohn && scoreMalli > scoreSmith) { 
     console('Mary wins with ' + scoreMalli); 
    } 
0

試試這個:

var ageJohn = 25; 
var heightJohn = 165; 

var ageSmith = 60; 
var heightSmith = 180; 

var ageMalli = 24; 
var heightMalli = 170; 

var scoreJohn = heightJohn + 5 * ageJohn; 
var scoreSmith = heightSmith + 5 * ageSmith; 
var scoreMalli = heightMalli + 5 * ageMalli; 


if (scoreJohn > scoreSmith && scoreJohn > scoreMalli) { 
    console.log('John wins with ' + scoreJohn) 
} else if (scoreSmith > scoreJohn && scoreSmith > scoreMalli) { 
    console.log('Smith wins with! ' + scoreSmith) 
} else if(scoreMalli > scoreJohn && scoreMalli > scoreSmith) { 
    console('Mary wins with ' + scoreMalli); 
} 

我刪除從if報表分號和固定的最後else if

0

你有一些語法錯誤。

if (scoreJohn > scoreSmith && scoreJohn > scoreMalli) { 
    console.log('John wins with ' + scoreJohn); 
} else if (scoreSmith > scoreJohn && scoreSmith > scoreMalli) { 
    console.log('Smith wins with! ' + scoreSmith); 
} else if (scoreMalli > scoreJohn && scoreMalli > scoreSmith) { 
    console('Mary wins with ' + scoreMalli); 
} 

你的else子句不能有條件,你應該擴展到另一個if。

0

語句if的語法是這樣的;

if (condition or Boolean value) 
    statement; 
else 
    statement; 

statement必須是一個複雜的書面{...}
您在(condition)之後寫了;,因此if子句以空語句結束。
這就是爲什麼,else會引發語法錯誤。謝謝你的閱讀。