Aba*_*aij 5 php switch-statement
我有一个切换声明,根据学生得到的分数显示成绩.
得分> = 80的
学生得分> = 70的
学生得分> = 50的B
学生得分> = 30的C
学生得分> = 0的D 学生得到E
问题是当点为0时,它返回A而不是E.这是switch语句.
$point = 0;
switch ($point) {
case $point >= 80:
echo 'A';
break;
case $point >= 70:
echo 'B';
break;
case $point >= 50:
return 'C';
break;
case $point >= 30:
echo 'D';
break;
case $point >= 0:
echo 'E';
break;
default:
echo 'F';
break;
}
Run Code Online (Sandbox Code Playgroud)
您尝试与$point布尔值(如$point >= 80)进行比较.它匹配第一种情况,因为它$point = 0是假的,$point >= 80也是假的,所以它匹配第一种情况和回声A.如果要对案例进行比较,则必须使用以下代码:
$point = 0;
switch (true) {
case $point >= 80:
echo 'A';
break;
case $point >= 70:
echo 'B';
break;
case $point >= 50:
echo 'C';
break;
case $point >= 30:
echo 'D';
break;
case $point >= 0:
echo 'E';
break;
default:
echo 'F';
break;
}
Run Code Online (Sandbox Code Playgroud)
演示: https ://ideone.com/lyBUmA
使用if和elseif代替的另一个解决方案switch:
$point = 0;
if ($point >= 80) {
echo 'A';
} elseif ($point >= 70) {
echo 'B';
} elseif ($point >= 50) {
echo 'C';
} elseif ($point >= 30) {
echo 'D';
} elseif ($point >= 0) {
echo 'E';
} else {
echo 'F';
}
Run Code Online (Sandbox Code Playgroud)
演示: https ://ideone.com/FRlorS
| 归档时间: |
|
| 查看次数: |
122 次 |
| 最近记录: |