이 항목은 제가 작업중인 프로그램의 일부입니다. 사용자가 올바른 번호를 입력했는지 확인하려고합니다.사용자 입력 유효성 검사에 문제가 있습니다.
선택할 수있는 다섯 가지 선택 항목이 있으므로 1, 2, 3, 4 또는 5 중 하나를 누르십시오. 그런 다음 Enter 키를 누릅니다.
그래서 사용자가 < 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");
}
}
}
이 코드는 정상입니다. '< 1' and '> 5'를 체크하지 말자.'invalid input'을 출력하는 디폴트 케이스를 넣을 수있다. – Nishant
재귀에주의를 기울여야한다. 문제가 생길 수 있으며, 익숙하지 않으면 이상한 오류가 발생할 수있다. 예를 들어, 코드에서 businessAccount를 businessAccount에서 호출 할 때 else 문 외부에 코드가 있으면 여러 번 실행하고 마지막으로 실행하는 시간은 예상 한 시간이 아닐 수 있습니다. 지금은 괜찮습니다.하지만이 방법을 나중에 편집하면 예기치 않은 동작이 발생할 수 있습니다. – Scott
또한 오류 메시지를 인쇄하려면 switch 문 아래쪽에 'default'를 추가하는 것이 좋습니다. – Scott