如果可以创建另一个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()
答案 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()