我是编程新手,目前正在为一家银行编写菜单。
用户可以通过按 1 或 2 来选择他/她是管理员还是客户。我想编写代码,以便如果用户键入其他符号而不是ints
程序将发送错误消息并让用户选择再次。
到目前为止,我只设法让程序使用while
循环处理除 1 和 2 之外的其他整数。
我想我可能应该使用try
and catch
,但我无法让它工作。我用 . 标记了我尝试过try
/catch
东西的地方//----------
。
用户输入 X 而不是数字时的错误消息:
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!");
}
}
}