是多个'如果'陈述和' if-else-if'相互排斥的条件相同的陈述?

时间:2015-04-29 13:35:38

标签: java oop if-statement conditional-statements

编写多个if语句和if-else-if语句之间有什么区别吗?

当我尝试编写包含多个if语句的程序时,它没有给出预期结果,但它与if-else-if一起使用。

条件相互排斥。

2 个答案:

答案 0 :(得分:10)

当您编写多个if语句时,可能会将多个if语句评估为true,因为语句彼此独立。

当您编写单个if else-if else-if ... else语句时,只能将一个条件计算为true(一旦找到计算结果为true的第一个条件,则跳过下一个else-if条件)

如果每个条件块都突破包含if语句的块(例如,从方法返回或从中断开),则可以使多个if语句表现得像单个if else-if .. else语句循环)。

例如:

public void foo (int x)
{
    if (x>5) {
        ...
        return;
    }
    if (x>7) {
        ...
        return;
    }
}

将具有与以下相同的行为:

public void foo (int x)
{
    if (x>5) {
        ...
    }
    else if (x>7) {
        ...
    }
}

但是如果没有return语句,当x> 5和x> 7都为真时,它会有不同的行为。

答案 1 :(得分:0)

两者都不相同。 if语句将检查所有条件。如果你要编写多个if语句,它将检查每个条件。 如果否则将检查条件,直到满意为止。一旦if / else if满足,它就会超出该块。