If和Else之间的区别如果?

时间:2013-11-28 06:41:06

标签: java if-statement

我想知道为什么要使用else if语句,而不是多个if语句?例如,这样做有什么区别:

if(i == 0) ...
else if(i == 1) ...
else if(i == 2) ...

而且:

if(i == 0) ...
if(i == 1) ...
if(i == 2) ...

他们似乎完全一样。

11 个答案:

答案 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,则所有语句都将被执行。如果您使用了ifelse 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语句检查所有多个可用ifelse if检查if语句失败时,if语句返回true,不会检查else if

所以这取决于您的要求是如何。

答案 4 :(得分:3)

对于第一种情况:一旦 其他如果 (或第一个 ,如果 )成功,则没有将测试剩余的 else ifs elses 。但是在第二种情况下,即使所有 。

答案 5 :(得分:1)

第一个例子不一定会运行3个测试,其中第二个例子没有返回或者没有。

答案 6 :(得分:1)

在第一种情况下,只要ifelse 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)

一个可能的答案是:

案例 1:

if(i == 0)
{
    i++;
    System.out.println("%d", i);
}
else if(i == 1)
{
   System.out.println("HI!");
}

在第一种情况下

输出恰好是唯一的

1

案例 2:

if(i == 0)
{
    i++;
    System.out.println("%d", i);
}
if(i == 1)
{
    System.out.println("HI!");
}

在第二种情况下

输出恰好是

1HI!