这段代码,当进入第一个if时,会判断$ch+$en+$ma>220,但是$ch+$en+$ma<220,事件流是不是就会跳出这个if,执行后面的else?
<?php
$ch=60;
$ma=62;
$en=65;
if($ch>60&&$ma>60&&$en>60)
{
if($ch+$en+$ma>220)
{$tg='合格';};
}
else{
$tg='不合格';
}
?>
<html>
<p><?php echo $tg; ?></p>
</html>
这段代码,当进入第一个if时,会判断$ch+$en+$ma>220,但是$ch+$en+$ma<220,事件流是不是就会跳出这个if,执行后面的else?
<?php
$ch=60;
$ma=62;
$en=65;
if($ch>60&&$ma>60&&$en>60)
{
if($ch+$en+$ma>220)
{$tg='合格';};
}
else{
$tg='不合格';
}
?>
<html>
<p><?php echo $tg; ?></p>
</html>
后面的else是第一个if判断60的,里面的if没有else,也就是说,tg是空
可以修改如下
<?php
$ch=60;
$ma=62;
$en=65;
# 我觉得你漏了等于这个情况,所以加上了
$condition = ($ch+$en+$ma) >= 220 && $ch >= 60 && $ma >= 60 && $en >= 60;
$tg = $condition ? '及格' : '不及格';
?>
1 回答4.1k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
2 回答2.3k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答715 阅读✓ 已解决
2 回答2.3k 阅读
1 回答687 阅读✓ 已解决
1.同一队if...else之间才会根据if中的条件是否满足跳转,不同的不会,哪怕是嵌套的。所以当你的if中嵌套的if条件不满足时,它会寻找有没有有它成对的else,很抱歉,这里没有与它配套的else,所以$tag会为空。
2.注意书写格式,代码的可读性,缩进,大括号的位置是紧跟在判断条件后面,操作符两边都要有空格。
当然,xiayongsheng的那种写法更简洁,但可读性稍微差点。