Reputation: 79
I want to be able to handle the exception where anything besides an Int is entered by the user, so that it will throw an exception that can later be handled and a user friendly message be displayed to the user suggesting to enter an int.
final int FEES=3000;
String [] user = new String [2];
String [] password = new String [3];
int userChoice, sdev, maths, systemAnalysis, cmpArch, menu, studentFees=0, grantFees=0, hundred=0, seventyFive=0, fifty=0, noGrant=0, grantAwarded=0, processed=0, totalStudentFees=0;
double average;
String studentName, studentNumber;
Scanner in=new Scanner(System.in);
System.out.println("\t\tPlease create your College Grant account");
System.out.print("Please enter your desired username: ");
user[0]=in.next();
System.out.print("\nPlease enter the password for your account: ");
password[0]=in.next();
System.out.println("\n\n\t\tSecurity Feature");
System.out.print("Please enter your username: ");
user[1]=in.next().toLowerCase();
System.out.print("\nPlease enter your password: ");
password[1]=in.next();
System.out.print("\nPlease re-enter your password: ");
password[2]=in.next();
if(user[1].equals(user[0]) && password[1].equals(password[0]) && password[2].equals(password[0])){
System.out.println("\nPassword has been verified successfully.");
System.out.println("\n\n\t\t College Grant System");
System.out.println("1.\t Calculate Grant");
System.out.println("2.\t Fee Statistics");
System.out.println("3.\t Grant Category Information");
System.out.println("4.\t Exit");
System.out.print("\nEnter your choice: ");
userChoice=in.nextInt();
while (userChoice!=1 && userChoice!=2 && userChoice!=3 && userChoice!=4){
System.out.println("\t Inavlid Choice");
System.out.println("\n\t\t College Grant System");
System.out.println("1.\t Calculate Grant");
System.out.println("2.\t Fee Statistics");
System.out.println("3.\t Grant Category Information");
System.out.println("4.\t Exit");
System.out.print("\nEnter your choice: ");
userChoice = in.nextInt();
}
Upvotes: 1
Views: 84
Reputation: 1176
Here's a quick example of an input loop to check to see if the input either wasn't a number, or was out of range:
import java.util.Scanner;
public class InputLoop {
Scanner scan;
public InputLoop()
{
//Initialize number outside of the range, so the while loop condition will be true on its first run.
int numberToEnter = -1;
scan = new Scanner(System.in);
while (numberToEnter < 1 || numberToEnter > 4)
{
System.out.print("Enter a number 1 through 4: ");
try {
numberToEnter = Integer.parseInt(scan.nextLine());
} catch (NumberFormatException ex)
{
System.out.println("Not a number!");
}
}
System.out.print("Thank you! You entered: " + numberToEnter);
}
public static void main(String...args)
{
new InputLoop();
}
}
Example output:
Enter a number 1 through 4: 12
Enter a number 1 through 4: 16
Enter a number 1 through 4: banana
Not a number!
Enter a number 1 through 4: 2
Thank you! You entered: 2
Upvotes: 3