Data Validation

B

BlackJackal

I am really new to programming so take it easy on me :)

Here is the code. Basically what I want it to do is whenever the user
enters in 1 2 or 3 to say good job. When the user enters 4 to quit
and anything else display an error message. This code works fine as
long as the user enters in a int if anything else is entered it
crashes. How can i fix this? Thanks

import javax.swing.*;
public class Input123
{
public static void main(String[] args)
{
String input;
int selection = 0;
while (selection != 4) {
input = JOptionPane.showInputDialog(null,"Enter in either
1, 2, 3, or 4 to quit");
selection = Integer.parseInt(input);
if(selection == 1 || selection == 2 || selection == 3) {
JOptionPane.showMessageDialog(null,"Good Job");
}
else if(selection == 4){
System.exit(0);
}
else {
JOptionPane.showMessageDialog(null,"You have entered an
invalid character, Please try again.");
}

}

System.exit(0);
}
}
 
E

Eric Sosman

BlackJackal wrote On 01/29/07 17:44,:
I am really new to programming so take it easy on me :)

Here is the code. Basically what I want it to do is whenever the user
enters in 1 2 or 3 to say good job. When the user enters 4 to quit
and anything else display an error message. This code works fine as
long as the user enters in a int if anything else is entered it
crashes. How can i fix this? Thanks

import javax.swing.*;
public class Input123
{
public static void main(String[] args)
{
String input;
int selection = 0;
while (selection != 4) {
input = JOptionPane.showInputDialog(null,"Enter in either
1, 2, 3, or 4 to quit");
selection = Integer.parseInt(input);
if(selection == 1 || selection == 2 || selection == 3) {
JOptionPane.showMessageDialog(null,"Good Job");
}
else if(selection == 4){
System.exit(0);
}
else {
JOptionPane.showMessageDialog(null,"You have entered an
invalid character, Please try again.");
}

}

System.exit(0);
}
}

If the user enters junk, Integer.parseInt() will throw
NumberFormatException. If you want to keep going after the
exception is thrown, you must catch it and deal with it.
Here's one way:

while (true) { // selection != 4 is useless
input = ...;
try {
selection = Integer.parseInt(input);
}
catch (NumberFormatException ex) {
selection = 0;
}
if (... as above ...)
}
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,763
Messages
2,569,563
Members
45,039
Latest member
CasimiraVa

Latest Threads

Top