2014-10-20 53 views
0

我有一個問題。我必須創建3個方法testUreaRisk,testProteinRisk和printResults。和下面是2出來的3.java中的新方法並返回

public class Lab { 


     public static String testUreaRisk(double ureaLevel) 
     { 
      if ((ureaLevel < 0) || (ureaLevel > 10)) 
       return "0"; 
      else if (ureaLevel <= 4.0) 
       return "-1"; 
      else 
       return "1"; 
     } 

     public static String testProteinRisk(double proLevel) 
     { 
      if ((proLevel < 0) || (proLevel >150)) 
       return "0"; 
      else if (proLevel >= 67.0) 
       return "1"; 
      else 
       return "-1"; 

     } 

的,所以我的問題是可以我把一個值到返回數字1,1,0,-1爲-1 =低風險,0 =不能定義和1 =高風險?如果可以,怎麼樣?因爲第三種方法只能讓我返回顯示結果(低風險,無法定義和高風險)而不是數字(-1,0,1)的字符串。謝謝

+6

您可以創建一個枚舉,而不是 – fge 2014-10-20 06:56:31

回答

3

但更好的方法是使用一個Enum

如:

public enum Enum { 
    LOW("-1"), NOT_DETERMINED("0"), HIGH("1"); 

    } 

如:

Enum

public enum Enum { 
    LOW("-1"), NOT_DETERMINED("0"), HIGH("1"); 
    private String code; 
    private Enum(String c) { 
     this.code = c; 
    } 

    public String getCode() { 
     return this.code; 
    } 

    public static Enum getEnum(String code) { 
     switch (code) { 
      case "-1": 
       return LOW; 
      case "0": 
       return NOT_DETERMINED; 
      case "1": 
       return HIGH; 
      default: 
       return null; 
     } 
    } 
} 

現在

System.out.println(Enum.getEnum(testProteinRisk(10))); 

會給你

LOW 
+0

我不能改變testUreaRisk和testProteinRisk返回值因爲這個問題想讓我把它歸爲整數。只有第三種方法想顯示結果而不是整數。 – 2014-10-20 07:00:54

+0

@NoahSkullWeijian然後你應該去'enum' – 2014-10-20 07:02:25

+0

@NoahSkullWeijian看我的例子。 – 2014-10-20 07:08:51

1

你應該在這裏與Enum類一起去。如果你想有一個整型值,你可以在每個枚舉創建一個emthod將re`enter代碼hereturn這個值:)

Enum { LOW(-1), NOT_DETERMINED(0), HIGH(1); 
// getters 
}