我正在尝试计算用户应根据工资支付多少税款。例如,在第一个 if
循环中计算 20%,这将保存在 generaltax
中:
int generalTax = 0;
int userGrossPay = 50000;
if (userGrossPay <= 10600) {generalTax += 0;}
else if (((userGrossPay >= 10600) && (userGrossPay <= 31785))) { generalTax = ((20/100) * userGrossPay); }
else if (((userGrossPay >= 31786) && (userGrossPay <= 150000))) { generalTax = ((40/100) * userGrossPay); System.out.println(generalTax);}
else if (userGrossPay > 150001) {generalTax = ((45/100) * userGrossPay); }
else{System.out.println("error");};
userGrossPay -= generalTax;
System.out.println(userGrossPay);
但是 generalTax
pay 由于某种原因总是停留在 0
并且没有在每次迭代中正确更新。
最佳答案
您的问题是您总是添加 0
或将 0
分配给 generalTax
。
例如,(20/100) * userGrossPay
是 0
,因为 20/100
是 0
由于 int
split 。也将其更改为 0.2 * userGrossPay
或 20.0/100 * userGrossPay
。类似地更改所有其他除以两个整数的地方。
关于Java - Else If 循环不适用于实例变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32256690/