我想知道为什么要使用else if
语句,而不是多个if
语句?例如,这样做有什么区别:
if(i == 0) ...
else if(i == 1) ...
else if(i == 2) ...
而且:
if(i == 0) ...
if(i == 1) ...
if(i == 2) ...
他们似乎完全一样。
答案 0 :(得分:44)
if(i == 0) ... //if i = 0 this will work and skip following statement
else if(i == 1) ...//if i not equal to 0 and if i = 1 this will work and skip following statement
else if(i == 2) ...// if i not equal to 0 or 1 and if i = 2 the statement will execute
if(i == 0) ...//if i = 0 this will work and check the following conditions also
if(i == 1) ...//regardless of the i == 0 check, this if condition is checked
if(i == 2) ...//regardless of the i == 0 and i == 1 check, this if condition is checked
答案 1 :(得分:9)
不同之处在于,如果第一个if
为真,则其他所有其他if
将不会被执行,即使它们的评估结果为真。但是,如果它们是单独的if
,则如果它们评估为真,则将执行所有if
。
答案 2 :(得分:4)
如果您使用了多个if
语句,那么如果条件为true
,则所有语句都将被执行。如果您使用了if
和else if
组合,则只有一个会在第一个真正值的位置执行
// if condition true then all will be executed
if(condition) {
System.out.println("First if executed");
}
if(condition) {
System.out.println("Second if executed");
}
if(condition) {
System.out.println("Third if executed");
}
// only one will be executed
if(condition) {
System.out.println("First if else executed");
}
else if(condition) {
System.out.println("Second if else executed");
}
else if(condition) {
System.out.println("Third if else executed");
}
答案 3 :(得分:3)
if
语句检查所有多个可用if
。
else if
检查if
语句失败时,if
语句返回true,不会检查else if
。
所以这取决于您的要求是如何。
答案 4 :(得分:3)
对于第一种情况:一旦 其他如果 (或第一个 ,如果 )成功,则没有将测试剩余的 else ifs 或 elses 。但是在第二种情况下,即使所有 。
答案 5 :(得分:1)
第一个例子不一定会运行3个测试,其中第二个例子没有返回或者没有。
答案 6 :(得分:1)
在第一种情况下,只要if
或else if
条件成立,就会跳过/不检查所有“else if”。
在第二种情况下,即使i的值为0,也会测试以下所有条件。
因此,您可以推断,如果您正在测试同一个变量 - 在给定时间内不能有多个值,那么更好的选择是使用第一种方法,因为它是最佳的。
答案 7 :(得分:1)
不,他们是不同的。 执行将每次检查。 即。
if(true)
executes
if(true)
executes // no matter how many ifs you have
与if和else if
if(true)
executes
else if(true)
// system doesn't checks for this once if gets true
简而言之,如果梯子将被执行,则只有其中一个。
答案 8 :(得分:1)
看,如果你想检查所有条件,如一,二,三......你的第二选择是好的,但在很多情况下,你只检查一个条件,所以你已经阻止其他条件不执行,在那特殊情况下你必须选择你的第一选择
答案 9 :(得分:0)
if:仅在“ condition”为true时执行
elif:仅在“ condition”为假且“ other condition”为true时执行
答案 10 :(得分:0)
一个可能的答案是:
if(i == 0)
{
i++;
System.out.println("%d", i);
}
else if(i == 1)
{
System.out.println("HI!");
}
输出恰好是唯一的
1
if(i == 0)
{
i++;
System.out.println("%d", i);
}
if(i == 1)
{
System.out.println("HI!");
}
输出恰好是
1HI!