根据婚姻状况和收入查找所得税-java
因此,我的程序根据你的婚姻状况和收入计算所得税,这是一项课堂作业,老师希望我们以某种方式来计算所得税,这就是为什么我用final和其他东西定义常数的原因。不管怎样,我编译了我的程序,没有语法错误,但是当我运行程序时,计算就停止了 例如,当我输入我的婚姻状况为单身,然后输入我的收入为10000时,它给我的值为1000,而它应该是1100 感谢您的帮助根据婚姻状况和收入查找所得税-java,java,Java,因此,我的程序根据你的婚姻状况和收入计算所得税,这是一项课堂作业,老师希望我们以某种方式来计算所得税,这就是为什么我用final和其他东西定义常数的原因。不管怎样,我编译了我的程序,没有语法错误,但是当我运行程序时,计算就停止了 例如,当我输入我的婚姻状况为单身,然后输入我的收入为10000时,它给我的值为1000,而它应该是1100 感谢您的帮助 import java.util.Scanner; public class Tax { public static void main(Str
import java.util.Scanner;
public class Tax
{
public static void main(String[] args)
{
Scanner keyboard = new Scanner(System.in);
double tax = 0, taxIncome = 0;
final double FIRST_SINGLE_TAX = .10;
final double FIRST_MARRIED_TAX = .10;
final double SECOND_SINGLE_TAX = .15;
final double SECOND_SINGLE_VALUE = 800;
final double SECOND_MARRIED_TAX = .15;
final double SECOND_MARRIED_VALUE = 1600;
final double THIRD_SINGLE_TAX = .25;
final double THIRD_SINGLE_VALUE = 4400;
final double THIRD_MARRIED_TAX = .25;
final double THIRD_MARRIED_VALUE = 8800;
System.out.print("Enter your marital status (single or married): ");
String status = keyboard.nextLine();
if(!status.equalsIgnoreCase("single") && !status.equalsIgnoreCase("married"))
{
System.out.println("-- illegal marital status --");
System.exit(0);
}
else
{
System.out.print("Enter your taxable income: ");
taxIncome = keyboard.nextDouble();
}
if (status.equals("single"))
if (taxIncome >= 0 && taxIncome <= 8000)
{
tax = taxIncome * FIRST_SINGLE_TAX;
}
else if (taxIncome > 8000 && taxIncome <= 32000)
{
tax = (SECOND_SINGLE_VALUE + (taxIncome - 8000) * SECOND_SINGLE_TAX);
}
else if (taxIncome >= 32000)
{
tax = (THIRD_SINGLE_VALUE + (taxIncome - 32000) * THIRD_SINGLE_TAX);
}
else
{
System.out.print(" -- illegal income --");
}
else if(status.equals("married"));
if (taxIncome >= 0 && taxIncome <= 16000)
{
tax = taxIncome * FIRST_MARRIED_TAX;
}
else if (taxIncome > 16000 && taxIncome <= 64000)
{
tax = (SECOND_MARRIED_VALUE + (taxIncome - 16000) * SECOND_MARRIED_TAX);
}
else if (taxIncome >64000)
{
tax = (THIRD_MARRIED_VALUE + (taxIncome - 64000) * THIRD_MARRIED_TAX);
}
else
{
System.out.print (" -- illegal income --");
}
System.out.printf("Your income tax is $%.2f", tax);
}
}
作为一名新程序员,给您一个很好的建议: 1了解如何使用调试器, 2学习如何设置断点,调查局部变量和 3了解如何添加和调查日志。 一旦你这样做了,你就会意识到问题在于这句话: 否则,如果身份相同,则结婚; 您基本上终止了else语句,这意味着else什么也不做,因此,您的纳税价值被以下行覆盖:
tax = taxIncome * FIRST_MARRIED_TAX;
如果。。。结束你的下一个陈述{},你就没事了
//... 如果条件
否则,如果status.equals已婚{
如果taxIncome>=0&&taxIncome 16000&&taxIncome 64000{
税=第三方已婚价值+税收入-64000*第三方已婚税;
}否则{
System.out.print-非法收入-;
}
}
你试过调试它吗?为什么你认为正确的值应该是1100美元?0.1×10000=1000.