相关疑难解决方法(0)

为什么在"if x then return"之后很少使用"else"?

这个方法:

boolean containsSmiley(String s) {
    if (s == null) {
        return false;
    }
    else {
        return s.contains(":)");
    }
}
Run Code Online (Sandbox Code Playgroud)

可以等同地写成:

boolean containsSmiley(String s) {
    if (s == null) {
        return false;
    }

    return s.contains(":)");
}
Run Code Online (Sandbox Code Playgroud)

根据我的经验,第二种形式更常见,特别是在更复杂的方法中(可能有几个这样的退出点),"throw"和"return"也是如此.然而,第一种形式可以说使代码的条件结构更加明确.有什么理由比较喜欢一个吗?

(相关:一个函数应该只有一个return语句吗?)

java if-statement coding-style function-exit

60
推荐指数
5
解决办法
2万
查看次数

if和if-else之间有什么明显的区别吗?

鉴于以下代码片段,是否有任何明显的差异?

public boolean foo(int input) {
   if(input > 10) {
       doStuff();
       return true;
   }
   if(input == 0) {
       doOtherStuff();
       return true;
   }

   return false;
}
Run Code Online (Sandbox Code Playgroud)

public boolean foo(int input) {
   if(input > 10) {
      doStuff();
      return true;
   } else if(input == 0) {
      doOtherStuff();
      return true;
   } else {
      return false;
   }
}
Run Code Online (Sandbox Code Playgroud)

或者使用这段代码,单退出原则会更好吗?

public boolean foo(int input) {
   boolean toBeReturned = false;
   if(input > 10) {
      doStuff();
      toBeReturned = true;
   } else if(input == 0) {
      doOtherStuff();
      toBeReturned …
Run Code Online (Sandbox Code Playgroud)

java maintainability coding-style

8
推荐指数
1
解决办法
4241
查看次数