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

H4c*_*0rD 1 c++ if-statement

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

多个ifs的示例:

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

if input is "Bye"
    sayGoodbye()

if input is "Hey"
    sayHi()
Run Code Online (Sandbox Code Playgroud)

使用else-if的示例:

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

else if input is "Bye"
    sayGoodbye()

else if input is "Hey"
    sayHi()
Run Code Online (Sandbox Code Playgroud)

Bri*_*tow 14

如果您有非独家条件:

if(a < 100)
{...}
else if (a < 200)
{...}
else if (a < 300)
....
Run Code Online (Sandbox Code Playgroud)

这与没有"else"的相同代码有很大不同......


Mic*_*tum 13

它的性能也更高.

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

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

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


Bra*_*pit 8

你的意思是这样的:

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

if (a == false || b == true || c != 1 || d != 0) {
    // else
}
Run Code Online (Sandbox Code Playgroud)

维护其他声明会更清晰,更容易维护.

  • 最后,您要求处理器执行两次相同的工作. (5认同)

Tad*_*pec 7

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

if (conditon1)
{
    action1();
}
else if (condition2) 
{
    action2();
}
else if (conditon3)
{
    action3();
}
.
.
.
else {
    action_n();
}
Run Code Online (Sandbox Code Playgroud)

读者清楚地知道要执行一个动作.而且由于条件错误,不可能执行多个动作.