2017-11-14 10 views
2

私が理解しているように、switch文のパラメータの中には、あなたのすべてのケースと比較して正しいケースを返す項目があります。switch文パラメータにブール値が必要なのはなぜですか?

私のswitch文では、私がすべてのケースを比較している "スコア"引数ではなく真でブール値を入れる必要があるのはなぜですか?ありがとう!

相続人は運動

function convertScoreToGrade(score) { 
    switch (true) { 
    case (score > 100 || score < 0): 
     return 'INVALID SCORE'; 
     break; 
    case (score <=100 && score >= 90): 
     return 'A'; 
     break; 
    case (score <=89 && score >= 80): 
     return 'B'; 
     break; 
    case (score <=79 && score >= 70): 
     return 'C'; 
     break; 
    case (score <=69 && score >= 60): 
     return 'D'; 
     break; 
    case (score <=59 && score >= 0): 
     return 'F'; 
     break; 
    } 
    return score; 
} 
+0

これらのケースではブール値が返されるためです。 '()'の中のすべてのスコアを渡すと、 'case'の次が評価されます。 – PHPglue

答えて

1

それがスイッチ引数で比較する前にJSは、括弧内の式を評価しているため。

convertScoreToGrade(71);

function convertScoreToGrade(score) { 
    switch (true) { 
    case (false): 
     return 'INVALID SCORE'; 
     break; 
    case (false): 
     return 'A'; 
     break; 
    case (false): 
     return 'B'; 
     break; 
    case (true): 
     return 'C'; 
     break; 
    case (false): 
     return 'D'; 
     break; 
    case (false): 
     return 'F'; 
     break; 
    } 
    return score; 
} 

グレート説明in this answer:この例で考えてみましょう。

+0

ありがとうございます! – Rojas

関連する問題