我想知道一个更合适,或者更好用。
即:
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;
}
谢谢!
答案 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)
它们都会以相同的效率工作,因为您总是返回到先前的状态。 但是,如果你考虑线程,它可能会导致一些缺陷,因为它可能会在执行代码之间中断。