这是我正在制作的程序的一小部分。我正在尝试检查用户是否输入了正确的号码。
他们有五个选择可供选择,因此他们可以点击1,2,3,4或5.然后按回车。
所以我想检查以确保用户不在<中键入任何内容1或> 5.我得到了那部分工作......但我只是想知道是否有一种更简单的方法,然后从我在下面的代码中所做的那样。
下一部分是我还要确保用户不输入字母。比如“gfgfadggdagdsg”可供选择。
这是我正在处理的部分的代码......
public void businessAccount()
{
int selection;
System.out.println("\nATM main menu:");
System.out.println("1 - View account balance");
System.out.println("2 - Withdraw funds");
System.out.println("3 - Add funds");
System.out.println("4 - Back to Account Menu");
System.out.println("5 - Terminate transaction");
System.out.print("Choice: ");
selection = input.nextInt();
if (selection > 5){
System.out.println("Invalid choice.");
businessAccount();
}
else if (selection < 1){
System.out.println("Invalid choice.");
businessAccount();
}
else {
switch(selection)
{
case 1:
viewAccountInfo3();
break;
case 2:
withdraw3();
break;
case 3:
addFunds3();
break;
case 4:
AccountMain.selectAccount();
break;
case 5:
System.out.println("Thank you for using this ATM!!! goodbye");
}
}
}
答案 0 :(得分:7)
您可以通过添加< 1
案例来检查> 5
和default
。
try{
selection = input.nextInt();
switch(selection){
case 1:
viewAccountInfo3();
break;
case 2:
withdraw3();
break;
case 3:
addFunds3();
break;
case 4:
AccountMain.selectAccount();
break;
case 5:
System.out.println("Thank you for using this ATM!!! goodbye");
break;
default:
System.out.println("Invalid choice.");
businessAccount();
}
}catch(InputMismatchException e){
//do whatever you wanted to do in case input is not an int
}
答案 1 :(得分:0)
使用BufferedReader
可以执行以下操作:
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
String s = br.readLine();
int selection = 0;
try{
selection = Integer.parseInt(s);
if(selection > 5 || selection < 1){
System.out.println("Invalid choice.");
businessAccount();
}else{
// your switch code here
}
// you can use @Nishant's switch code here. it is obviously better: using switch's default case.
}catch(NumberFormatException ex){
// throw new Exception("This is invalid input"); // or something like that..
System.out.println("Invalid choice.");
businessAccount();
}
希望有所帮助。
注意:您必须import java.lang.NumberFormatException
import java.io.InputStreamReader
和import java.io.BufferedReader
答案 2 :(得分:0)
使用切换案例,当您检查特定内容中的选择时,它会更好,并且更加加快 if语句。
答案 3 :(得分:-1)
另一种方法是使用正则表达式来使其工作。 假设你有一个字符串x然后
字符串x =“某事”;
如果(x.matches( “正则表达式”)){
}
另一种方法是使用try catch环绕。