2017-03-02 3 views
2

私は入力のためにユーザーに質問してintのリストをコンパイルしようとしています。しかし、コードは何らかの理由でリストに偶数だけを追加するだけです。また、whileループは、2回目に999を入力すると停止します。コードは次のとおりです。リストに特定の数字だけを追加するのはなぜですか?

import java.util.*; 

public class hw3 { 
    public static void main (String args[]) { 
    Scanner input = new Scanner(System.in); 
    ArrayList<Integer> pre = new ArrayList<Integer>(); 
    while (input.nextInt() != 999) { 
     pre.add(input.nextInt()); 
    } 
    } 
} 

私が間違っていることはわかりません。私の間違いを指摘してください。

答えて

3

nextInt()は、ループの前に1回、whileループの中で2回呼び出されています。

public static void main (String args[]) { 
    Scanner input = new Scanner(System.in); 
    ArrayList<Integer> pre = new ArrayList<Integer>(); 
    int in; 
    while ((in = input.nextInt()) != 999) { 
     pre.add(in); 
    } 
    } 
:あなたはこのような何かをする必要があり

8

ループの繰り返しごとにinput.nextInt()を2回呼び出します。

代わりに結果をキャッシュして、代わりに配列に追加するときに使用してください。

関連する問題