2014-01-16 3 views
-1

죄송합니다 다음 문을 계속하지, 더자바하는 동안 루프가

import java.util.Scanner; 

public class rpg { 
    public static void main(String[] args) { 
    Scanner keyboard = new Scanner(System.in); 
    String input; 
    boolean live = true; 

    if (live == true){ 
     System.out.println("DETECTIVE RPG"); 

     while (true) {       // << ENTER CHECK 
     System.out.print("\n Press Enter..."); 
     input = keyboard.next(); 
     if (input.equals(null)) 
      break; 
     }          // ENTER CHECK >> 

     System.out.print("Past check."); 

키보드 나 스캐너라는 것입니다 추가 한 것이다.

이 메시지는 콘솔에 "Enter 키를 누르십시오"를 인쇄하고 입력 상자가 비어 있는지 확인합니다. Enter 키를 누르면 While 루프를 깨고 다음 명령문으로 이동해야합니다. 맞습니까? Enter 키를 누르면 다른 입력 상자가 표시되고 다음 인쇄 문으로 이동하지 않습니다.

+4

콘솔 출력 문제 ... –

+0

어디에서 '입력'및 '키보드'선언이 있습니까? –

+1

'keyboard.next()'는 "^ M"또는 ""이 아닌'Enter' 키를 눌렀을 때'null'을 리턴합니까? – Ned

답변

2

"Enter"만 누르면 Scanner에서 반환 할 토큰이 없습니다. next() method은 토큰을 읽을 수있을 때까지 차단됩니다.

이 스캐너에서 다음으로 완전한 토큰을 찾아 반환합니다. 완전한 토큰 앞에 구분 기호 패턴과 일치하는 입력이옵니다. 이전의 hasNext()의 호출이 true를 돌려주는 경우에서도,이 메소드는 입력의 스캔을 기다리는 동안 블록하는 일이 있습니다.

nextLine()으로 전환하십시오.

이 스캐너를 현재 줄 앞으로 이동하고 건너 뛴 입력을 반환합니다. 이 메소드는 끝에있는 행 구분자를 제외한 나머지 현재 행을 리턴합니다. 위치는 다음 행의 시작으로 설정됩니다.

이 메서드는 행 분리 기호를 찾기 위해 입력을 계속 검색하므로 선 구분 기호가없는 경우 건너 뛸 줄을 검색하는 모든 입력을 버퍼링 할 수 있습니다.

입력 전체를 반환합니다. 행이 비어 있으면 null이 아닌 "" 인 빈 문자열을 반환합니다. 시도해보십시오

input = keyboard.nextLine(); 
if ("".equals(input)) 
    break; 
+0

고마워요. 설명을 이해하고 내 문제를 해결했습니다. – user3200498

+0

좋은 답변입니다. 이 질문이 더 완전 할 때 도움이됩니다. < 웃음/> – keshlam

관련 문제