2012-02-27 117 views
0

活動類別:Java活動服務類和Java活動應用程序類

開發一個「建議」基於溫度的活動的類。應該通過一個帶有公共訪問器和增變器方法的私有變量來維持溫度。需要兩個構造函數。默認的構造函數應該將溫度設置爲0.應該創建第二個構造函數來接受初始溫度值。另一個名爲建議的方法應該返回一個包含「建議」活動的字符串。當溫度高於85時,該方法應該建議游泳。在70到84之間時,該方法應該建議網球。當溫度在60到69之間時,建議徒步旅行。當溫度低於60時,該方法應該建議棋盤遊戲。

客戶端應用程序:

創建一個Java客戶端應用程序來測試你的類。客戶端應該從用戶那裏獲取溫度,並使用該類來確定向用戶報告的活動。

Activity類代碼

/** 
* Java Chatbot Service class 
* @author blake 
* 2/26/2012 
*/ 

public class Activity 
{ 
    private int temperature; 

    public Activity(int newtemperature) 
     { 
     temperature = newtemperature; 
     } 

    public String getActivity() 
     { 
      String a = "board games"; 

      if (temperature > 85) 
      { 
       a = "Suggests Swimming"; 
       return a; 
      } 
      if (84 < temperature && temperature > 70) 
      { 
       a = "Suggests Playing Tennis"; 
       return a; 
      } 
      if (69 < temperature && temperature > 60) 
      { 
      a = "Suggests Hiking"; 
       return a; 
      } 
      if (temperature < 60) 
      { 
       a = "Suggests Playing Board Game"; 
       return a; 
      } 

    return a; 
    } 
} 

活動客戶端代碼

/** 
* Java Chatbot Service class 
* @author Blake 
* 2/26/2012 
*/ 

import java.util.Scanner; 

public class ActivityClient 
{ 
    public static void main(String[] args) 
    { 
     Scanner in = new Scanner(System.in); 

     System.out.print("Temperature of weather today: "); 
     int temperature = in.nextInt(); 

     Activity act = new Activity(temperature); 
     System.out.println(act.getActivity()); 
    } 
} 

好這裏是我遇到的重大問題,這是與布爾表達式。

當我編譯並運行程序時,它建議我不想要的活動。

回答這個工作今天

溫度:90 建議游泳

今天氣溫:58 建議玩棋盤遊戲

這兩個工作

但每當我把

今日溫度:77 sugge ST遠足(當它應該是網球)

今天氣溫:66 建議棋盤遊戲(當它應該是徒步旅行)

所以我想知道我在做什麼毛病的徒步旅行和網球的方法。

回答

0

你的情況是不是真的好。看:

69 < temperature && temperature > 60 

意味着溫度超過69,溫度超過60。 我想你的意思是:

69>temperature && temperature > 60 
+0

是的這就是我的意思,因爲我希望它小於70但大於60但它一直給我一些其他的東西。 – blake 2012-02-27 17:08:56

+0

您可以使用if(){} elseif()...'來提高效率。如果您已經知道只有一個人可以通過並且已經通過,它會避免程序對每個個案進行測試。 – 2012-02-27 17:21:08

0

這裏是你的錯誤:

if (84 < temperature && temperature > 70) 

if (69 < temperature && temperature > 60) 

正確的語句將是

if (84 > temperature && temperature > 70) 

if (69 > temperature && temperature > 60) 
+0

非常感謝你,就像一個魅力現在:)這意味着我必須設置溫度之一爲假表達然後從現在開始。 – blake 2012-02-27 17:05:44