Hello. I have written the code below but when I compile my program, I get
Taxable Income Amount Filing Status Tax Amount
-------------------------------------------------------------------------------
$50,000.00 null $0.00
I initialized my String output as null but I do not know how to initialize it otherwise. And I need my output to be called back to the main method in order to compute taxfinal. Can someone please help?
import java.util.Scanner; // Needed for the Scanner class
import java.text.NumberFormat; // Needed for number format class
public class Income
{
// Main method.
public static void main(String[ ] args)
{
double taxAmount;
boolean validInput = true;
boolean validEnter = true;
double tax1 = 0.0;
double tax2 = 0.0;
double tax3 = 0.0;
double tax4 = 0.0;
double tax5 = 0.0;
double tax6 = 0.0;
double taxfinal1 = 0.0;
double taxfinal2 = 0.0;
double taxfinal = 0.0;
double alphatax = 0.0;
double betatax = 0.0;
double enter = 0;
String output = null;
String menu = null;
String[ ] arrayOfValues = { output, Double.toString(enter)};
double[ ] arrayofNumbers= { taxfinal, enter};
Scanner keyboard = new Scanner (System.in);
System.out.print("\nEnter your taxable income amount: $");
do
{
taxAmount = keyboard.nextInt( ); // Stores the chosen movie.
validInput = true;
if ( (taxAmount < 50000) ) // Defines the invalid boundaries (but true by definition).
{
System.out.print ("\n(You must an amount greater than or equal to $50,000): $");
validInput = false;
}
}while(!validInput);
// A method call to displayMenu
displayMenu (arrayOfValues, menu, validEnter, enter= Double.parseDouble(arrayOfValues[1]), output=arrayOfValues[0]);
// A method to call to computeIncometax
computeIncometax (arrayofNumbers, taxAmount, enter, tax1, tax2, tax3, tax4, tax5, tax6, taxfinal1, taxfinal2, taxfinal, alphatax, betatax);
// A method to call to displayFinal
displayFinal (taxAmount, output, taxfinal);
System.exit(0);
}
public static String[ ] displayMenu(String[ ] arrayOfValues, String menu, boolean validEnter, double enter, String output)
{
Scanner keyboard = new Scanner (System.in);
System.out.print ("\n ");
System.out.print ("**************************************************************");
System.out.print ("\n * Filing Status Menu *");
System.out.print ("\n * 1 - Single *");
System.out.print ("\n * 2 - Married Filing Jointly *");
System.out.print ("\n * 3 - Marries Filing Separately *");
System.out.print ("\n * 4 - Head of Household *");
System.out.print ("\n **************************************************************");
System.out.print ("\n ");
System.out.print("\nPlease choose a filing status number: ");
do
{
enter = keyboard.nextInt( ); // Stores the chosen status number.
validEnter = true;
if ( (enter < 1) || (enter > 4)) // Defines the invalid boundaries (but true by definition).
{
System.out.print ("\n(You must pick a status number 1 through 4): ");
validEnter = false;
}
}while(!validEnter);
if (enter == 1)
output = "Single";
else if (enter == 2)
output = "Married Filing Jointly";
else if (enter == 3)
output = "Married Filing Separately";
else if (enter == 4)
output = "Head of Household";
else;
return arrayOfValues;
}
public static double[ ] computeIncometax(double[ ] arrayofNumbers, double taxAmount, double enter, double tax1, double tax2, double tax3, double tax4, double tax5, double tax6, double taxfinal1, double taxfinal2, double taxfinal, double alphatax, double betatax)
{
tax1 = 11158.50 + 0.31*(taxAmount - 49300.00);
tax2 = 5100.00 + 0.28*(taxAmount - 34000.00);
tax3 = 18582.00 + 0.31*(taxAmount - 82150.00);
tax4 = 9291.00 + 0.31*(taxAmount - 41075.00);
tax5 = 4095.00 + 0.28*(taxAmount - 27300);
tax6 = 16177.00 + 0.31*(taxAmount - 70450);
if (taxAmount > 34000 && taxAmount < 82150)
taxfinal1 = tax2;
else
taxfinal1 = tax3;
if (taxAmount > 27300 && taxAmount < 70450)
taxfinal2 = tax5;
else
taxfinal2 = tax6;
if (enter == 1)
taxfinal1 = tax1;
else if (enter == 2)
alphatax = taxfinal1;
else if (enter == 3)
taxfinal2 = tax4;
else if (enter == 4)
betatax= taxfinal1;
else;
if (enter == 1)
taxfinal = taxfinal1;
else if (enter == 2)
taxfinal = taxfinal1;
else if (enter == 3)
taxfinal = taxfinal2;
else if (enter == 4)
taxfinal = taxfinal2;
else;
return arrayofNumbers;
}
public static void displayFinal(double taxAmount, String output, double taxfinal)
{
NumberFormat nf = NumberFormat.getNumberInstance( ); // Defines the number format.
nf.setMinimumFractionDigits(2); // Sets the minimum decimal places.
nf.setMaximumFractionDigits(2); // Sets the maximum decimal places.
// Display the final statement
System.out.println(" ");
System.out.println(" Taxable Income Amount" + " Filing Status" + " Tax Amount" );
System.out.println("-------------------------------------------------------------------------------");
System.out.println(" $" + nf.format(taxAmount) + " " + output + " $" + nf.format(taxfinal));
System.out.println(" ");
}
}