答:if…else if…else 比 if…else 复杂一点,但也很好理解。 if…else if…else 的意思就是:“如果”第一个成立,就执行第一个;“否则如果”第二个成立就执行第二个;“否则”就执行第三个。 这个应该很好理解吧,与我们平时讲话时的思维逻辑一样。
答:if 块和 else if 块本质上是互斥的! 也就是说,一旦语句1得到了执行,程序会跳过 else if 块,else if 块中的判断语句以及语句2一定会被跳过;同时语句2的执行也暗含了条件1判断失败和语句1没有执行;当然还有第3个情况,就是条件1和条件2都判断失败,语句1和语句2都没有得到执行。 编辑于 2015-01-27 10:36
答:因为在 if 和 else 之间多加了一个分号。 在C语言中,一个分号也是一条语句,叫“空语句”,就是一个什么都不执行的语句。 若在 if 和 else 中间加了一条语句,就将 else 和 if 分开了,就相当于 else 单独使用了,所以就会报错“没有和else匹配的if”。
答:由于就近配对的原则,容易产生空悬else的问题,因此建议总是使用复合语句括号以避免在以后修改代码时可能出现的混淆或错误。 else if,和此名称暗示的一样,是 if 和 else 的组合。 和 else 一样,它延伸了 if 语句,可以在原来的 if 表达式值为 FALSE 时执行不同语句。 但是和 else 不一样的是,它仅在 elseif 的条件表达式值为 TRUE 时执行语句。 在同一个 if 结构中可以有多个 elseif 语句。 第一个表达式值为 TRUE 的 elseif 语句(如果有的话)将会执行。 在 php 中,也可以写成“else if”(两个单词),它和“elseif”(一个单词)的行为完全一样。