这是因为当 $j==0 时,有可能同时 $i>$j ,而你的第一段代码中的三个if是并列关系,当判断完 $j==0 后,会再次判断 $i>$j ,这样最终就会执行第三个if中的代码,这样就出错了。
if (条件1) {
语句1
}
if (条件2) {
语句2
}
if (条件3) {
语句3
}
以上这种写法,程序会逐个判断三个条件,只要条件成立,就会执行其中的语句,也就是说如果三个条件都成立,那么三个语句都会执行。
if (条件1) {
语句1
} else if (条件2) {
语句2
} else if (条件3) {
语句3
}
而以上这种写法,程序也会逐个判断三个条件,但只要有某个条件成立,程序在执行完其中语句后就会退出整个if语句,后面的条件都不再判断了,也就是说,即使三个条件都成立,也只会执行语句1,剩下的语句2和语句3是不会执行的。
追问![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/37d3d539b6003af3cfc6bcf4272ac65c1038b622?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
为什么我用elseif 改写之后还是报错了呢?这又是什么原因呢,有点百思不得其解啊。
追答56行的那个 == 要改为 =