level 1
大神来看看这个switch哪里有问题?求解答 为会娈量等0时 输出的是计分错误,而不是不及格?
$cont = 0;
switch ($cont) {
case $cont > 100;
echo "计分错误";
break;
case $cont == 100;
echo "满分";
break;
case $cont >= 60;
echo "及格";
break;
default;
echo "不及格";
}
2023年07月28日 14点07分
1
level 11
将 switch ($cont) 改为 switch(true)
2023年07月29日 01点07分
3
level 11
网上答案是这样的;问题的原因就是switch-case在执行的流程是 switch 位置的条件和 case 位置的条件做比较,再继续执行程序。
时候switch位置的条件为"假"(false),语句继续执行的时候,只有当 case 位置的条件也为false 程序才会执行 case 冒号位置后的程序。而事实是 case 位置的所有条件都为"假"(false),所以最终的结果是执行第一个case冒号后的语句,即输出结果为:计分错误。
所以我们只需要把switch里面的值为ture时,结果就是预想的结果了。
2023年07月29日 01点07分
4
谢谢
2023年07月29日 13点07分