2017-05-10 21 views
0

私はJavaを使い慣れていません。私は少しのコードを書いて何が起こるかを知っています。私は2つの値を入力することができる理由固定配列に値を入力してください

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.nextInt()sc.nextLine()を追加して、あなたのコードは期待

+1

感謝として動作するはずです。それは今働く。 –

関連する問題