2013-02-18 85 views
-3

我不确定如果我能做最后的'其他如果'语句正常工作。需要关于逻辑问题的帮助

有问题的代码目前被散列出来,位于程序的最底部。阅读其他'否则,如果'以上的陈述可能会让你更好地洞察我的思维过程。

我不知道我怎样才能作出最后的“如果其他”的工作,因为它没有一个定义的最大值。

else if((gross_income >= 80001) && (gross_income <= 180000)) 
       { 
         gross_income = gross_income - 80000; 
         tax_payable = tax_payable + 17547; 

         for(i = 1; i <= gross_income; i++) 
         { 
           tax_payable = tax_payable + 0.37; 
         } 

         System.out.print("\n\n"); 
         System.out.print("YOU MUST PAY $" + df.format(tax_payable) + " IN TAX!"); 
         System.out.print("\n\n"); 
       } 
//    else if(gross_income >= 180001) 
//    { 
//      gross_income = gross_income - 180000; 
//      tax_payable = tax_payable + 54547; 
// 
//      for(?????) 
//      { 
//        tax_payable = tax_payable + 0.45; 
//      } 
// 
//      System.out.print("\n\n"); 
//      System.out.print("YOU MUST PAY $" + df.format(tax_payable) + " IN TAX!"); 
//      System.out.print("\n\n"); 
//    } 
     } 
} 
+0

你想做什么?你有什么?你想得到什么? – npinti 2013-02-18 09:02:23

+0

*“需要帮助解决逻辑问题”*首先解决上限问题。键。没有必要对我们进行SHOUT。 – 2013-02-18 09:03:35

+0

例如,如果我输入$ 200,000,我希望它计算应纳税额。但是因为最后一个没有预先定义的最大值,所以我不能像我之前那样循环它。 – 2013-02-18 09:04:23

回答

1

哦,亲爱的,因为我爱你的税计算这么多:

做这种方式 - 总是试图避免重复代码(例如计算只进行一次,唯一改变的是税 - 百分比):

double perc = 0.0; 

if(gross_income < 80001) 
{ 
    perc = 0.16; // dont know american tax limits, so lets pretend 0.16 
} 
else if(gross_income >= 80001 && gross_income < 180001) 
{ 
    perc = 0.37; 
} 
else 
{ 
    perc = 0.45; 
} 
tax_payable = gross_income * perc; 

System.out.print("\n\n");... and so on 
+0

感谢您提供有用的信息,Najzero。如果我将来需要做类似的事情,我一定会使用你给我看的代码。 – 2013-02-18 09:16:00

+0

实际上,这是不正确的,因为边际税率通常只适用于支架最小值以上的金额。所以有效税率总是低于利润率。但是,我确实认为没有必要经历这个丑陋的循环。 – 2013-02-18 09:49:53