为什么在C ++中使用if-else?

时间:2009-10-07 01:26:15

标签: c++ if-statement

如果可以创建另一个if语句,为什么要使用if-else语句?

多个ifs的示例:

input = getInputFromUser()
if input is "Hello"
    greet()

if input is "Bye"
    sayGoodbye()

if input is "Hey"
    sayHi()

使用else-if:

的示例
input = getInputFromUser()
if input is "Hello"
    greet()

else if input is "Bye"
    sayGoodbye()

else if input is "Hey"
    sayHi()

5 个答案:

答案 0 :(得分:14)

如果您有非独家条件:

if(a < 100)
{...}
else if (a < 200)
{...}
else if (a < 300)
....

这与没有“else”的相同代码非常不同......

答案 1 :(得分:13)

它的性能也更高。

在您的第一个示例中,即使输入为“Hello”,也会检查每个。所以你有三张支票。

在你的第二个例子中,执行将在找到分支后停止,因此如果用户键入“Hello”,则只有一个检查而不是三个。

在您的简单示例中,差异可能不大,但想象您正在执行一个可能很昂贵的功能,您可能会看到差异。

答案 2 :(得分:8)

你的意思是这样的:

if (a == true && b == false && c == 1 && d == 0) {
    // run if true
}

if (a == false || b == true || c != 1 || d != 0) {
    // else
}

else语句会更清晰,更容易维护。

答案 3 :(得分:7)

如果您需要从给定的一组操作中选择完全一个操作,根据某些条件,自然和最明确的选择是切换(不要忘记在每个分支后中断)或if和else的组合。我写的时候

if (conditon1)
{
    action1();
}
else if (condition2) 
{
    action2();
}
else if (conditon3)
{
    action3();
}
.
.
.
else {
    action_n();
}

读者清楚地知道要执行其中一项操作。并且由于条件错误,不可能执行多个动作。

答案 4 :(得分:0)

如果您使用if条件序列,则遵循相同的示例,无论输入什么内容,它都将运行所有3个条件。用sequence of if条件替换if-else在最佳情况下只会运行第一个条件,而在最坏情况下会全部运行第三个条件。

因此,可以得出结论,在大多数情况下,if-else将节省我们的运行时间,因此,使用if-else优于使用sequence of if条件。

input = getInputFromUser()
if input is "Hello"
    greet()

if input is "Bye"
    sayGoodbye()

if input is "Hey"
    sayHi()