2017-05-10 1 views
0

저는 Java에 익숙하지 않으며 약간의 코드를 작성하여 어떤 일이 발생 하는지를 배우고 있습니다. 내가 두 값을 입력 할 수 있습니다 이유고정 배열에 값을 채우십시오.

size of array: 
3 
3 
type your words: 
a 
b 
0 
a 1 
b 2 

내 질문은 그들이 인덱스 1에서 시작 : 이것은 내가 출력으로 무엇을 얻을

public static void main(String[] args){ 
    Scanner sc = new Scanner(System.in); 
    System.out.println("size of array:"); 
    int size = sc.nextInt(); 

    String tab[] = new String[size]; 
    System.out.println(tab.length); 
    System.out.println("type your words:"); 
    for(int i = 0; i < tab.length; i++) { 
     tab[i] = sc.nextLine(); 
    } 
    for(int i = 0; i < tab.length;i++){ 
     System.out.println(tab[i] + " " +i); 
    } 
} 

: 이것은 내가 어제 무슨 짓을? ArrayList를 사용할 수 있다는 것을 알고 있으며 배열의 크기가 하드 코딩 된 경우 모든 것이 작동합니다. 나는 왜 그런 일이 일어나고 있는지에 대한 설명보다는 실무적인 코드를 찾지 않고있다. 죄송합니다.

답변

3

sc.nextInt()은 입력 한 내용의 int 부분을 읽습니다. 행의 끝 문자는 읽히지 않습니다. 즉, 처음 입력 한 sc.nextLine()은 줄 바꿈 문자가 새 입력 대신 읽히는 것을 의미합니다.

sc.nextInt()sc.nextLine()를 추가하고

+1

감사를 예상대로 코드가 작동합니다. 이제 작동합니다. –

관련 문제