2017-12-19 6 views
1

main 방법에서 나는 system.in에서 입력을 읽고 while 조건으로 전달합니다. 하지만 작동하지 않습니다. 매번 기본값 53 개가 필요합니다. 실수가 어디인지 알 수 없었습니다.시스템 입력에서 while 조건을 넣는 것이 작동하지 않습니다

int num = br.read() 대신에 int num = 15을 수동으로 할당하면 while 루프가 발생합니다. 그것은 잘 작동합니다.

int num = Integer.parseInt(br.readLine()); 

대신

int num = br.read(); 
+0

시도'br.readLine()'를 int를 얻을 수 있습니다. 'read()'는 메소드 설명에 명시된대로 단일 문자 만 읽습니다. 또한 문자열을'.equals()'와 비교하지만'==' – XtremeBaumer

+0

이 아닌 "생각"한다고 비교하지만, "알고 있습니다". 그 차이점을 보시겠습니까? – XtremeBaumer

+0

고마워,이게'int num = Integer.valueOf (br.readLine())' – Rudra

답변

0

사용은 사용자의

Scanner scanner = new Scanner(System.in); 
int num = scanner.nextInt(); 
0

또 다른 방법은 아래

public class Parenthesis 
{ 
    public static void main(String[] args) throws Exception 
    { 
     BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
     System.out.println("Enter number of test cases: "); 
     int num = br.read(); 
     while(num > 0) 
     { 
      System.out.println(num-- + "Chances Left"); 
      String str = br.readLine(); 
      if(isParenthesis(str)) 
       System.out.println("Cool Rudra"); 
      else 
       System.out.println("Poor Rudra"); 
     } 
    } 

    public static boolean isParenthesis(String str) 
    { 
     if(str == "Rudra") 
      return true; 
     else 
      return false; 
    } 
}