The problem Write a program that asks the user to enter the amount that he or she has budgeted for a month. A loop should then prompt the user to enter each of his or her expenses for the month, and keep a running total. When the loop finishes, the program should display the amount that the user is over or under budget.
Breaking it down public static void main ( String [] args ) {
// Create a DecimalFormat object to format output.
DecimalFormat dollar = new DecimalFormat ( "#,##0.00" );
// Create a Scanner object for keyboard input.
Scanner keyboard = new Scanner ( System . in );
// Get the budget amount.
System . out . print ( "Enter your budget for the month: " );
double monthlyBudget = keyboard . nextDouble ();
// Get each expense, keep track of total.
double expense ;
double totalExpenses = 0.0 ;
do {
// Get an expense amount.
System . out . print ( "Enter an expense, or a negative "
+ "number to quit: " );
expense = keyboard . nextDouble ();
totalExpenses += expense ;
} while ( expense >= 0 );
// Display the amount after expenses.
double balance = calculateAmountOverBudget ( monthlyBudget , totalExpenses );
if ( balance < 0 ) {
System . out . println ( "You are OVER budget by $"
+ dollar . format ( Math . abs ( balance )));
} else if ( balance > 0 ) {
System . out . println ( "You are UNDER budget by $"
+ dollar . format ( balance ));
} else {
System . out . println ( "You spent the budget amount exactly." );
}
keyboard . close ();
}
static double calculateAmountOverBudget ( double monthlyBudget ,
double totalExpenses ) {
return monthlyBudget - totalExpenses ;
}
Output Enter your budget for the month: 100
Enter an expense, or a negative number to quit: 10
Enter an expense, or a negative number to quit: 10
Enter an expense, or a negative number to quit: 10
Enter an expense, or a negative number to quit: 10
Enter an expense, or a negative number to quit: 10
Enter an expense, or a negative number to quit: -10
You are UNDER budget by $60.00
Level Up Refactor the budget attributes into an object to represent an Budget. Use a constructor to set the variables and getters to get the values. There is a bug in the program when trying to quit, what is it? Budget analysis posted by Justin Musgrove on 20 April 2014
Tagged: java and java-exercises-beginner
Share on: Facebook Google+