2016-03-12 23 views
0

所以在這一段代碼,我要發佈我試圖讓這個說你輸入的3桶大小,感覺你選了3桶大小的假設使桶蜂的價值達到300美元。按租金收益法計算時。但我試圖用許多不同的方式來安排這些代碼,但我無法解決這個問題。有人能給我一些關於我應該怎麼做的提示嗎?煩惱與對象確認和分配值

public void SetBucketSize(int b) 
    { 

     if (bucket >6 || bucket <0) 
     { 
     System.out.println("Enter valid Bucket Size(1-5)"); 
     } 

      if (bucket == 1) 
      { 

      BucketSize = 100; 

      } 
      if (bucket == 2) 
      { 

      BucketSize = 200; 
      } 
      if (bucket == 3) 
      { 

      BucketSize = 300;; 
      } 
      if (bucket == 4) 
      { 

      BucketSize = 400; 
      } 
      if (bucket == 5) 
      { 
      BucketSize = 500; 
      } 

     BucketSize = b;  
    } 

public int GetBucketSize() 
      { 
      return this.BucketSize; 
      } 



@Override 
    public int RentalProfit() 
    { 
     return (RentalRate * RentalDays + BucketSize); 

    } 
+3

這裏有什麼問題?它會拋出一個編譯錯誤嗎?或者它沒有計算出正確的價值?請更具體地說明你有什麼樣的問題。 –

+0

您應該使用數組來存儲'BucketSize'候選值。 – MikeCAT

回答

2
public void SetBucketSize(int b) { 
    if (b < 1 || b > 5) { 
     System.out.println("Enter valid..."); 
     return; 
    } 
    BucketSize = b * 100; 
} 
+0

爲什麼要改變上從6結合到其5?將其更改回6,或將下限更改爲1。 – Andreas

+0

我改成了> 5,因爲它似乎是什麼裏德實際上想要(通過錯誤信息判斷)。你說的是零。我錯過了。更新。 – obe

+0

非常感謝!我現在從來沒有想過現在回顧這一點。 – ried

0

SetBucketSize有一個名爲b參數,並最終執行BucketSize = b,但在此之前,所有的代碼是完全錯誤的。

保護條件允許值爲0到6,但值爲1到5的語句只有if,因此它們本身不涵蓋0和6。

此外,代碼分配給BucketSize,但由最終的BucketSize = b覆蓋,所以簡而言之,所有的代碼是沒有意義的,什麼都不做。

令人驚訝的是,代碼甚至編譯,因爲bucket甚至從哪裏來?