遇到一点麻烦,我试图给$ letterGrade分配字母,但似乎只分配了D和F.
($finalGrade >= 97) ? $letterGrade = "A+"
: ($finalGrade >= 93 && $finalGrade <97) ? $letterGrade = "A"
: ($finalGrade >= 90 && $finalGrade <93) ? $letterGrade = "A-"
: ($finalGrade >= 87 && $finalGrade <90) ? $letterGrade = "B+"
: ($finalGrade >= 83 && $finalGrade <87) ? $letterGrade = "B"
: ($finalGrade >= 80 && $finalGrade< 83) ? $letterGrade = "B-"
: ($finalGrade >= 77 && $finalGrade <80) ? $letterGrade = "C+"
: ($finalGrade >= 73 && $finalGrade <77) ? $letterGrade = "C"
: ($finalGrade >= 70 && $finalGrade <73) ? $letterGrade = "C-"
: ($finalGrade >= 60 && $finalGrade <70) ? $letterGrade = "D"
: $letterGrade = "F"
;
答案 0 :(得分:2)
不使用三元运算符,而是使用switch
语句。例如:
switch ($finalGrade) {
case ($finalGrade >= 93 && $finalGrade < 97):
$letterGrade = "A";
break;
//continue $finalGrade checks
}
您还可以使用elseif
声明。
if ($finalGrade >= 93 && $finalGrade < 97) {
$lettergrade = "A";
}
elseif($finalGrade >= 90 && $finalGrade < 93) {
$letterGrade = "A-";
}
elseif($finalGrade >= 87 && $finalGrade < 90) {
$letterGrade = "B+";
}
//...continue checks....
else {
$letterGrade = "F";
}