I'm new to programming and currently I'm writing the menu for a bank.
The user gets to choose, whether he/she is an admin or a customer by pressing 1 or 2. I want to write the code so that, if the user types other symbols than ints
the program will send an error message and let the user choose again.
So far I have only managed to get the program to handle other integers than 1 and 2, using a while
loop.
I'm thinking I should probably use try
and catch
, but I can't get it to work. I marked where I have tried the try
/catch
stuff with //----------
.
error message when user input X instead of a number:
run:
Press 1 to login as customer or 2 to login as admin x
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:864)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextInt(Scanner.java:2117)
at java.util.Scanner.nextInt(Scanner.java:2076)
at bank.Bank.main(Bank.java:32)
Java Result: 1
BUILD SUCCESSFUL (total time: 5 seconds)
public class Bank {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int ChoiceOne;
int CustpNr;
int CustChoice;
int AdminpNr;
int AdminChoice;
System.out.print("Press 1 to login as customer or 2 to login as admin ");
ChoiceOne = input.nextInt();
while (ChoiceOne != 1 && ChoiceOne != 2) {
// ---------------
try {
ChoiceOne = input.nextInt();
} catch (Exception e) {
continue;
}
// ----------------
System.out.print(" Wrong number. Press 1 to login as customer or 2 to login as admin ");
ChoiceOne = input.nextInt();
}// ends while
// The code below generates a menu for the customer if the user chooses 1
// and a meny for the admin if the user chooses 2.
if (ChoiceOne == 1) {
System.out.print("Welcome customer. Please login by using your birthdate (yymmdd) ");
CustpNr = input.nextInt();
boolean quit = false;
do {
System.out.println("1. deposit money");
System.out.println("2. Withdraw money");
System.out.println("3. Check balance");
System.out.print("Your choice, 0 to quit: ");
CustChoice = input.nextInt();
switch (CustChoice) {
case 1:
// deposit money
break;
case 2:
// withdraw money
break;
case 3:
// Check balance and accounts
break;
case 0:
quit = true;
break;
default:
System.out.println("Wrong choice.");
break;
}
System.out.println();
} while (!quit);
System.out.println("Bye!");
} else if (ChoiceOne == 2) {
System.out.print("Welcome Admin. Please login using your birthdate (yymmdd) ");
AdminpNr = input.nextInt();
boolean quit = false;
do {
System.out.println("1. Add customer");
System.out.println("2. Add account");
System.out.println("3. List customer and accounts");
System.out.println("4. Remove customer");
System.out.println("5. Remove account");
System.out.print("Your choice, 0 to quit: ");
AdminChoice = input.nextInt();
switch (AdminChoice) {
case 1:
// add customer
break;
case 2:
// add account
break;
case 3:
// List customer and accounts
break;
case 4:
// ta bort kund
break;
case 5:
// ta bort konto
break;
case 0:
quit = true;
break;
default:
System.out.println("Wrong choice.");
break;
}
System.out.println();
} while (!quit);
System.out.println("Bye!");
}
}
}