2013-11-25 61 views
1

三元逻辑我有一个代码(Java为例):的结果(不是三元运算符)

boolean A(...){ 
     if (...) return true; 
     else return false; 
    } 

    void C(...){ 

     if (A) {doSomeThing();} 
     else {doNothing();} 
    } 

但逻辑变成今天我需要返回3箱子。它看起来像这样

 int A(...){ 
      if (...){ return int;} 
      else { 
       if (...) {return int;} 
       else {return int;} 
      } 
     } 

     void C(...){ 

      if (A == 1) {doSomeThing1();} 
      if (A == 2) {doSomeThing2();} 
      if (A == 3) {doSomeThing3();} 
     } 

这是一个最佳实践,或者我应该使用其他的东西而不是“int”?或者我应该改变我的逻辑,并把它分成两个布尔值? P.S.我知道这个问题是完全的,但它让我感到不安。

+2

使用['switch-case'](http://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html)。 – Maroun

+0

好吧,一个好的建议需要更多关于这些方法的信息。例如,它可以在将来更改以返回更多值? –

+0

例如,我有一个文本框和处理程序,它显示警告“错误数量的符号”。但今天我想要显示3种类型 - “太多符号”,“太多”而没有任何消息。 –

回答

7

最佳做法是使用枚举类型而不是布尔值。

public enum PossibleValues { 
    TRUE, FALSE, NEITHER; 
} 
+0

和一个开关,根据Ruchira的回答:) – CompuChip

+0

嗯,我把这个问题是关于适当的类型使用。 – user1455836

4

其实你应该检查多少条件取决于你的要求。为此,您可以使用if-elseswith-cases

+0

和一个枚举,根据user1455836的答案。 – CompuChip

+0

@CompuChip它取决于你。它会提供更多的可读性。 –

+1

您也可以将其他逻辑添加为枚举方法。如果你不小心使用了不存在的值,编译器会说你。 – user1455836