2011-06-12 2 views
-2

저는 Java에 매우 익숙하지 않기 때문에 몇 가지 개념을 이해하는 데 어려움이 있습니다. 여기 프로그램이 있습니다. System.out 부분은 합리적으로 잘 이해하지만 입력이 작동하는 방식에 대해 고민하는 데 문제가 있습니다.이 기본 Java 프로그램을 정확히 이해하지 못합니다.

// IO Example: 

import java.util.Scanner; 

public class HelloAge { 

    public static void main(String[] args) { 
     Scanner in = new Scanner(System.in); 
     System.out.print("What's your name? "); 
     String name = in.nextLine(); 
     System.out.print("In which year were you born? "); 
     Integer birthyear = in.nextInt(); 
     Integer age = 2011 - birthyear; 
     System.out.println("Hello, " + name + "! Welcome to COMP1100.\n" + 
          "You will turn " + age + " this year."); 
    } 
} 

in.nextLine();가 왜 볼 수없는 다음 in.nextInt(); 나는이 두 명령은 공통점이 또는 그들이 뜻하는지 무엇인지 표시되지 않는 이유는 무엇입니까? 그게 내 주요 문제 야.

+7

그래서 소개 자바 튜토리얼에 대한 많은 답변이 있습니다 –

+0

@ 밀치 밀 어디에서 찾을 수 있습니까? – maclunian

+1

정확히 어떤 문제가 있습니까? 스캐너는 어떻게 작동합니까? 그 메소드 호출은 무엇을합니까? 입력 코드에 대한 현재의 이해는 무엇입니까? –

답변

5

일반적으로 javadocs를 먼저 시도하십시오. 이 경우에는 Scanner docs입니다. 먼저 표준 입력 읽기에 대한 새로운 스캐너를 만들

... 다음 개행까지의 모든 문자입니다 전체 다음 줄에

Scanner in = new Scanner(System.in); 

읽기 ...

String name = in.nextLine(); 

다음 읽기 정수로 char 세트 ...

Integer birthyear = in.nextInt(); 
+0

그래서 기본적으로 다음 줄이 문자열을 처리 할 때는'in.NextLine();을, 다음 줄에서는 정수를 처리 할 때'in.nextInt();'를 사용해야합니다. 나는 올바른 길을 가고 있는가? – maclunian

+0

"다음 줄"이라는 단어를 "다음 글자 집합"으로 바꾸면 올바른 것입니다. –

0

System.in은 콘솔에서 입력을 호출합니다. 그런 다음 스캐너는 해당 입력 데이터를 읽고 어떤 형식 으로든 입력합니다. in.nextVar는 데이터를 가져 와서 데이터의 '청크'를 읽고 지정된 형식으로 변환하는 함수입니다.

관련 문제