2015-04-05 22 views
-1

我得到否則如果錯誤嘗試計算以下內容: 您剛開始在百貨商店的銷售工作。你的工資包括基本工資和佣金。基本工資是5000。下面顯示的方案用於確定佣金率。 銷售額佣金率 0.01-5,000 8% 5,000.01-10,000 10% 10,000.01及以上12% 您的目標是每年賺取30,000美元。編寫一個程序,找出你必須產生的最小銷售數量,以便賺取30,000。Java Else在計算銷售額時沒有IF錯誤

儘管我還不確定我的算法是否正確,因爲我需要先解決錯誤。謝謝。

import java.util.Scanner; 
public class Commissionsales { 
    public static void main(String[] args) { 
     // create scanner 
     Scanner s = new Scanner(System.in); 
     double saleAmount = s.nextDouble(); 
     double salary = 5000; 
     int target = 30000; 
     int sale = 0; 
     while (salary<=target){ 
      if(saleAmount<5000){ 

       double commissionrate = 0.08; 
       double commission = commissionrate*saleAmount; 
       salary+=commission; 
       sale++; 
      } 
      System.out.println("The minimum sales needed to earn 30,000:"+ sale); 
      break; 

      else if ((5000<saleAmount) && (saleAmount<10000)) 
      { 
       double commissionrate = 0.10; 
       double commission = commissionrate*saleAmount; 
       salary+=commission; 
       sale++; 
      } 
      System.out.println("The minimum sales needed to earn 30,000:"+ sale); 
      break; 
      else if (saleAmount>10000){ 
       double commissionrate = 0.12; 
       double commission =commissionrate*saleAmount; 
       salary+=commission; 
       sale++; 
      } 
      break; 

     } 
     System.out.println("The minimum sales needed to earn 30,000:"+ sale); 
    } 
} 
+3

您不能在'if'子句和'else'子句之間有語句。在一個塊內移動打印語句。 – Keppil 2015-04-05 21:58:38

+1

嘗試正確縮進你的代碼,你應該能夠看到你的'else's不正確地跟隨'if's。 – khelwood 2015-04-05 22:00:01

回答

1

你不能有System.out.println這樣:

... 
} 
System.out.println("The minimum sales needed to earn 30,000:"+ sale); 
break; 
else if ((5000<saleAmount) && (saleAmount<10000)) 
{ 
.... 

關閉if塊之後,需要立即寫else if,或錯誤發生。

+0

謝謝你的糾正。除了如果錯誤和刪除break語句,你能幫助檢查嗎,看起來銷售數量超過了一個。另外,爲什麼它只會在break語句中運行一次? – pumpin26 2015-04-05 23:01:43

+0

現在,我看到''saleAmount = s.nextDouble();'只在'while'循環之前讀取一次。如果您想查看其他銷售情況,則需要在循環內部進行閱讀。其他錯誤是,對於'saleAmount == 5000'或'saleAmount == 10000',沒有'if'case來處理它。 – tbukic 2015-04-06 09:28:35