Win a copy of Think Java: How to Think Like a Computer Scientist this week in the Java in General forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Display nothing if == 0

 
Mark Vermeer
Greenhorn
Posts: 2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I am having a problem with the following exercise out of my University text book. I have figured out how to do everything except how to not display 0 amounts. Any help would be appreciated. Please bear with the length.
Thanks.
import javax.swing.JOptionPane;
public class Exercise3_1 {
/** Main method */
public static void main(String[] args) {
int amount; // Amount entered from the keyboard

// Receive the amount entered from the keyboard
String amountString = JOptionPane.showInputDialog(null,
"Enter an amount in integer, for example 1156",
"Compute Change", JOptionPane.QUESTION_MESSAGE);

// Convert string to integer
amount = Integer.parseInt(amountString);

int remainingAmount = amount;

// Find the number of one dollars
int numOfOneDollars = remainingAmount / 100;
remainingAmount = remainingAmount % 100;

// Find the number of quarters in the remaining amount
int numOfQuarters = remainingAmount / 25;
remainingAmount = remainingAmount % 25;

// Find the number of dimes in the remaining amount
int numOfDimes = remainingAmount / 10;
remainingAmount = remainingAmount % 10;

// Find the number of nickels in the remaining amount
int numOfNickels = remainingAmount / 5;
remainingAmount = remainingAmount % 5;

// Find the number of pennies in the remaining amount
int numOfPennies = remainingAmount;

String dollar = "";
String quarter = "";
String dime = "";
String nickel = "";
String penny = "";

if (numOfOneDollars == 0)
dollar = "";
else
dollar = (numOfOneDollars == 1) ? " Dollar" : " Dollars";

if (numOfQuarters == 0)
quarter = "";
else
quarter = (numOfQuarters == 1) ? " Quarter" : " Quarters";

if (numOfDimes == 0)
dime = "";
else
dime = (numOfDimes == 1) ? " Dime" : " Dimes";

if (numOfNickels == 0)
nickel = "";
else
nickel = (numOfNickels == 1) ? " Nickel" : " Nickels";

if (numOfPennies == 0)
penny = "";
else
penny = (numOfPennies ==1) ? " Penny" : " Pennies";


// Display results
String output = "Your amount " + amount + " consists of \n" +
numOfOneDollars + dollar + " \n" +
numOfQuarters + quarter + " \n" +
numOfDimes + dime + " \n" +
numOfNickels + nickel + " \n" +
numOfPennies + penny;

JOptionPane.showMessageDialog(null, output,
"Example 2.4 Output", JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}
}
 
William Barnes
Ranch Hand
Posts: 986
Eclipse IDE Firefox Browser Tomcat Server
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Please use *code* tags.
When doing an "equal" for a string you need to use the "equals" method on the String class.
 
Mark Vermeer
Greenhorn
Posts: 2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Sorry for not using code tags - I did not RTFM.
Here is my code again. Any help in not displaying the 0 amount would be appreciated.
 
Jason Menard
Sheriff
Posts: 6450
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
You might want to work on this section of your code:

If I understand you correctly, if all you had was one dollar, then you would want your output to be simply "Your amount $1.00 consists of one dollar".
If that's the case, let me give you a couple of hints to point you in the right direction. You should actually check out the StringBuffer class to do this with, since it's more efficient. In any event, what you might think about when building your output String is checking if your amount of a particular currency is greater than zero, and if it is, append the appropriate text to your String or StringBuffer.
If you initialize your StringBuffer eariler, you actually already have your if statements in place to determine whether or not to append anything to the StringBuffer, and what you should append.
HTH
[ November 07, 2003: Message edited by: Jason Menard ]
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic