2014-11-10 3 views
0

사용자가 0-100이 아닌 숫자를 입력하면 유효성 검사를 추가해야 오류 메시지가 표시됩니다. 내 질문은, 난 그냥 하나의 간단한 라인을 입력해야합니까 아니면 항목을 확인하기 위해 각 프롬프트 후 뭔가를 입력해야합니까? (나는 오늘 뇌가 새들과 함께 사라 졌으므로 이것을 지나치게 생각할지도 모릅니다.) 다음은 조정할 필요가있는 블록입니다.Java - 표시 할 오류 메시지

switch(choice) 
     { 
      case 1: 
      System.out.println("Entering Student Details"); 
      System.out.println("------------------------"); 
      System.out.print(" Student name:        "); 
      name = sc.nextLine(); 
      sc.nextLine(); 
      System.out.print(" Student number:        "); 
      stuNum = sc.nextLine(); 
      System.out.print(" class 0 grade:    "); 
      grade = sc.nextInt(); 
      System.out.print(" class 1 grade:     "); 
      grade2 = sc.nextInt(); 
      System.out.print(" class 2 grade:       "); 
      grade3 = sc.nextInt(); 
      System.out.print(" class 3 grade:       "); 
      grade4 = sc.nextInt(); 
      System.out.print(" class 3 grade:    "); 
      grade5 = sc.nextInt(); 
      System.out.print(" class 4 grade:      "); 
      grade6 = sc.nextInt(); 
     } 
    }while(choice != 0); 

    System.out.println("Thank you for using the system."); 
+0

요구 사항이 명확하지 않은 경우 선생님에게 문의하십시오 ... –

+0

stuNum = sc.nextLine(); 숫자는 int, float 또는 double이어야합니다. –

답변

0

사용자가 입력 한 후 각 입력의 유효성을 검사해야합니다. 오류가 있으면 사용자에게 오류 메시지를 보내고 해당 등급에 대해 다른 입력을 요청하고 유효한 입력이 수신 될 때까지 루핑을 계속해야합니다. 기능을 분리하기 위해 다른 방법을 사용하는 것이 좋습니다. 루프가있는 getUserInput()이라는 새 메서드를 만들 수 있으며 유효한 입력을받을 때까지 사용자에게 입력을 요청합니다.

+0

스위치 블록에서이 메서드를 한 번 호출하면됩니까? –

+0

각 입력에 대해 호출 할 필요가 없습니다 ... – brso05

+0

기본적으로 sc.nextLine()을 대신 사용하여 유효성 검사를 수행합니다. – brso05