2014-10-01 2 views
1

나는 사용자로부터 입력을받는 간단한 추측 게임을 만들고있다. 입력 값은 난수를 추측하기 위해 6 이하의 숫자 여야합니다.numberformatexception을 어떻게해야합니까?

:

if(num > 5) { 
System.out.println("The number is too high. You spoiled one turn. Your saldo is now  "  + cash +"."); 
guessAgain(); 
} 

그러나 점에서 사용자 유형 뭔가 숫자가 아니라는 사실을, 나는이 코드로 처리 할 수 ​​있다고 생각 : 사용자 유형과 큰 숫자가 있다면 이미 상황을 처리

if(num != 1 && num != 2 && num != 3 && num != 4 && num != 5) { 
System.out.println("Invalid input"); 
guessAgain(); 
} 

하지만 그 doesnt 작품과 나에게 입력 문자열에 대한 numberformatexception을 제공합니다. 나 좀 도와 줄 수있어?

이 미리

감사는 전에 코드 :

System.out.print("Guess : "); 

BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
String gok = null; 

try { 
    gok = br.readLine(); 
    } catch (IOException ioe) { 
    System.out.println("IO error"); 
    System.exit(1); 
    } 




int num = Integer.parseInt(gok); 

답변

0

당신은 기입 된 수 (시도에서 아니었다면 당신이 결정하기 위해 예외를 사용할 수있는 시도 캐치를 사용하는 경우. int로 변환 할 수 있습니다). 그리고 시간의 대부분은 기입 된 번호가 아닌 경우가 될 것입니다 변환에 예외가있을 것입니다

편집 :.

시도
{
Integer.valueOf ([여기에 입력]);
}
캐치 (NumberFormatException이 전자)
는 {
에서 System.out.println는 ("당신의 입력은 숫자 아니었다");
}

+0

초보자 메신저 나 참아주세요, 당신은 어떻게 표시 할 수 있습니다 코드는 다음과 같이 보일 것입니다? – user3660293

+0

요청한대로 코드 샘플을 추가했습니다. – Dave

+0

이 문제가 해결 되었습니까? – Dave

0

가 (난 그냥 잡기 NFE를 코드를 받아 추가) 정수에 NUM을 변환하고 같은 NumberFormatException이 잡을 :

BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
     String num = null; 
     try 
     { 
      num = br.readLine(); 
      Integer.valueOf(num); 
     } catch (IOException ioe) 
     { 
      System.out.println("IO error"); 
      System.exit(1); 
     } catch (NumberFormatException nfe) 
     { 
      System.out.println("Invalid input"); 
     } 
     System.out.println(num); 
+0

답장을 보내 주셔서 감사합니다. 나는이 코드를 내 코드에 추가했고 여전히 오류가 발생했다. 코드를 추가하기 전에 조금 더 명확해질 수 있습니다. – user3660293

관련 문제