我是php新人,最近在学习PHP,遇到打印杨辉三角的问题。我觉得两段代码的意思是一样的。为什么第一段代码报错,第二段代码就能成功打印出结果呢?难道是if语句里面不能有多个if语句吗?是不是语法错了,请厉害的朋友解答一下。谢谢了。
这是因为当 $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是不会执行的。追问
if (条件1) {
语句1
}
if (条件2) {
语句2
}
if (条件3) {
语句3
}
以上这种写法,程序会逐个判断三个条件,只要条件成立,就会执行其中的语句,也就是说如果三个条件都成立,那么三个语句都会执行。
if (条件1) {
语句1
} else if (条件2) {
语句2
} else if (条件3) {
语句3
}
而以上这种写法,程序也会逐个判断三个条件,但只要有某个条件成立,程序在执行完其中语句后就会退出整个if语句,后面的条件都不再判断了,也就是说,即使三个条件都成立,也只会执行语句1,剩下的语句2和语句3是不会执行的。追问
为什么我用elseif 改写之后还是报错了呢?这又是什么原因呢,有点百思不得其解啊。
56行的那个 == 要改为 =
温馨提示:答案为网友推荐,仅供参考