2014-11-07 3 views
0

저는 초보 프로그래머입니다. 이제 약 3 주 동안 코드를 작성했습니다. 나는 사용자 입력 온도를 묻는 간단한 프로그램을 만들고 사용자가 열이 있는지 (39보다 높은 온도인지) 알려주고 싶다. 또한 사용자가 "똥"또는 "! @ · R % · %"(기호 횡설수설)을 입력하면 프로그램이 "잘못된 입력"이라는 구를 출력 함을 의미하는 사용자 입력의 유효성을 검사하려고합니다. 나는 시도/catch 문을 사용하려고 해요, 이건 내 코드입니다 : 라인 22 (내가 임시로 다음 numOne를 변환 할 때) "다음 numOne 변수로 해석 할 수 없습니다"라는 말에 오류가java.io의 기본 입력 유효성 확인

package feverPack; 

import java.io.*; 

public class Main { 

    public static void main(String[] args) throws IOException{ 

     try{ 
     InputStreamReader inStream = new InputStreamReader(System.in); 
     BufferedReader stdIn = new BufferedReader(inStream); 

     System.out.println("please input patient temperature in numbers"); 
     String numone =stdIn.readLine();} 

     catch (IOException e) { 
      System.out.println("invalid input"); 
     } 
     catch (NumberFormatException e){ 
      System.out.println("invalid input"); 
     } 
     int temp = Integer.parseInt(numone) ; 


     System.out.println("Your temperature is " + temp + "ºC"); 


     if (temp > 39) { 
      System.out.println("You have fever! Go see a doctor!"); 
     } 
     else{ 
      System.out.println("Don't worry, your temperature is normal"); 
     } 
    } 
} 

, 나는 초심자이므로, 무엇을해야할지 잘 모릅니다. 제발 도와주세요.

+1

대답은 이미 주어진하지만 일부 자세한 내용은 이쪽을 봐되었습니다 http://www.java2s.com/Tutorial/Java/0020__Language/VariableScope.htm –

+0

그래서 난 대답은 말을했다, 추가 그 여분의 줄, 더 이상 오류, 여전히 프로그램이 함수를 수행하지 않습니다,이 말은, 입력 문구 나 문자를 입력 할 때 프로그램이 계속 catch 문 대신 사용합니다. –

+0

장소'int temp = 정수. parseInt (numone);''try' 블록 안에서 – Niroshan

답변

1

numone의 선언을 try 블록 외부로 옮깁니다. 기본적으로 numonetry 블록의 scope 내에 declared이고 try 블록의 범위를 벗어나서 사용할 수 없었으므로이 블록을 이동하면 더 넓은 시야를 확보 할 수 있습니다.

String numone = null; 
int temp = 0; 
try 
{ 
... 
numone = stdIn.readLine(); 
temp = Integer.parseInt(numone) ; 
System.out.println("Your temperature is " + temp + "ºC"); 
if (temp > 39) { 
     System.out.println("You have fever! Go see a doctor!"); 
} 
else{ 
    System.out.println("Don't worry, your temperature is normal"); 
} 
} 
catch(..) 
{ 
... 
} 
+0

은 그 사람을 시험해 보았습니다. "토큰 구문 오류 :이 토큰을 삭제하십시오"라는 두 번째 오류가 발생했습니다. 확인한 문자열과 문자열이 올바르게 기록되었습니다. –

+0

시도해 주신 내용으로 질문을 업데이트 할 수 있습니까? – BatScream

+0

그 멍청한 실수는 있지만 여전히 "no"라고 입력하면 프로그램이 깨질 것입니다. –