在if

时间:2016-10-12 12:28:32

标签: java if-statement

想象一下,你想编写一个简单的方法,它接受一个名为" foo"的String参数。该方法应该返回int" 1"如果foo等于" toto"和" 2"在其他情况下。在不使用三元表达式的情况下编写此方法的最佳方法是什么?

我有几个解决方案,但不能自己决定哪个是Java中最好的。

解决方案1:

public int method1(String foo){
    if("toto".equals(foo)){
       return 1;
    }
    return 2;
}

解决方案2:

public int method2(String foo){
    if("toto".equals(foo)){
       return 1;
    } else {
        return 2;
    }
}

解决方案3:

public int method3(String foo){
    int result = 2;
    if("toto".equals(foo)){
       result = 1;
    }
    return result;
}

解决方案4:

public int method4(String foo){
    int result = 0;
    if("toto".equals(foo)){
       result = 1;
    } else {
       result = 2;
    }
    return result;
}

还有其他想法吗?

请记住,我搜索没有三元条件的解决方案。

谢谢,

编辑:我知道所有以前的方法都给出了预期的结果,所以可以使用它们。在我最初的问题中,我想知道什么以及什么不清楚:Java社区中是否存在某种关于这种情况的标准? 例如,我知道括号的位置有一个标准:你可以在if语句之后添加一行,但是大多数人都不会用Java来做。

我知道这里的三元表达可能是最好的。但是,正如你可以想象的那样,我的真实"方法比这更复杂,不能使用三元。我在这里提出的问题只是一个简化,而不是整个真正的问题。

1 个答案:

答案 0 :(得分:2)

我认为,最好的是最具可读性的

 public int method(String foo){
   return "toto".equals(foo)?1:2;
 }