2015-04-05 64 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