使用if vs else时是否存在显着差异?

时间:2013-10-26 18:23:53

标签: java if-statement

我想知道一个更合适,或者更好用。

即:

if(this.isValid()){
   valid = true; 
   return;
}else if(this.isNumeric()){
   numeric = true;
   return;
}...

VS

if(this.isValid()){
   valid = true;
   return;
}

if(this.isNumeric()){
   numeric = true;
   return;
}

谢谢!

2 个答案:

答案 0 :(得分:1)

鉴于您的代码段,使用if链和else-if链之间没有区别。但是,如果你删除那些返回语句if和else表示非常不同。

看看这个:

//Case one
int num = 100;

if(num > 90){
    System.out.println("Greater than 90");
}
if(num > 80){
    System.out.println("Greater than 80");
}

在这段特殊代码中,两个语句都会打印,因为两个语句都是单独计算的。

//Case two
int num = 100;

if(num > 90){
    System.out.println("Greater than 90");
}else if(num > 80){
    System.out.println("Greater than 80");
}

在这种情况下,只会打印“大于90”的语句,因为第二个条件未被评估。

答案 1 :(得分:0)

它们都会以相同的效率工作,因为您总是返回到先前的状态。 但是,如果你考虑线程,它可能会导致一些缺陷,因为它可能会在执行代码之间中断。