2017-12-01 5 views
-4

空白のフィールドが入力され、入力ボタンが押されるまでユーザー入力を取得しようとしています。私のwhileループは最初の入力をスキップしますが、私は見てみましたが、それを修正したり、より良い方法を使用する方法を理解していません。スキャナを使用しているユーザー入力を要求するJava Whileループが最初の入力をスキップする理由

public static void main(String[] args){ 

     Container x = new Container(); 
     Scanner scanner = new Scanner(System.in); 
     String input = scanner.nextLine(); 

     while (!input.equals("")) { 
      input = scanner.nextLine();    
      x.addWord(input);   
      } 
     x.display(); 

    } 

input and output

+4

'input'で何かをする前に' input = scanner.nextLine(); 'を2回呼び出すのは明らかです。 –

+0

誰もが言うことだが、私はそれを修正する方法を理解していない –

+2

*私はそれを修正する方法を理解していない* - それを2回呼び出さないでください? –

答えて

0

あなたは、ループに入る前にラインを読んで、その後すぐにループの体の最初の行に別の行を読んで。

String input = scanner.nextLine(); 
while (!input.equals("")) { 
    x.addWord(input); 
    input = scanner.nextLine();    
} 
+0

お時間をいただきありがとうございます。 addWord()は、ユーザ入力を読み取るスキャナの前に呼び出されているときに、入力された入力をどのように追加しますか? –

+2

@DanAフルコードを読むと、ループの前に 'scanner.nextLine'が一度呼び出されます。 – AxelH

+0

ありがとうございます。最初の行は初期化のためのものだと思っていました。 –

関連する問題