1
import java.util.Scanner;
public class InputLoop
{
    public static void main(String[] args)
  {
    Scanner scan = new Scanner(System.in);
    System.out.println("Enter an integer to continue or a non integer to finish");

    while (scan.hasNextInt())
    {
        System.out.println("Enter an integer to continue or a non integer to finish");
        int value = scan.nextInt();
        System.out.print("user: ");
    }
    scan.next();
    {
        System.out.println ("You entered");
        System.out.println ();

    }
}

}

「入力しました」と表示されている場合、入力された整数の数 (「3」など) と、整数の合計 (「56」など) が必要です。これを行う方法がわかりません。どうすればこれを実装できますか?

4

4 に答える 4

4

を維持しList<Integer>、ユーザーが整数を入力するたびにこのリストに追加します。したがって、追加される整数の数は単純に になりますlist.size()。現在行っていることでは、ユーザーの古い入力にアクセスする方法はありません。

代わりに、合計とカウントを格納する変数を使用することもできます (この場合は問題なく動作します)。ただし、私の意見ではList、このコードを更新/修正する場合は、このアプローチを使用すると柔軟性が大幅に向上します。プログラマーとして心に留めておくべきです。

List<Integer> inputs = new ArrayList<Integer>();

while (scan.hasNextInt()) {
    ...
    inputs.add(scan.nextInt());
}

...
于 2012-11-21T18:23:27.127 に答える
2

countという名前の変数とという名前の変数を保持するだけsumです。whileループ内のコードを次のように変更します。

 int value = scan.nextInt();
 sum += value;
 count++;

while結局、ループ終了後に両方を出力できます。

ところで、これらの中括弧 { } をscan.next();の後に置く必要はありません。それらは無関係であり、常に独立して実行されscan.next()ます。

したがって、次のように変更してください。

scan.next();  //I presume you want this to clear the rest of the buffer?
System.out.println("You entered " + count + " numbers");
System.out.println("The total is " + sum);
于 2012-11-21T18:24:53.153 に答える
0

カウント変数を持ち、最初に宣言してmainインクリメントします。

同じ方法で合計変数を管理することもできます。

while (scan.hasNextInt())
{
    System.out.println("Enter an integer to continue or a non integer to finish");
    int value = scan.nextInt();
    count++;
    sum += value;
    System.out.print("user: ");
}

scan.next();
{
    System.out.println ("You entered");
    System.out.println (count);
}
于 2012-11-21T18:23:00.657 に答える
0

出力したいものについては、ユーザーの入力の履歴を保持する必要はありません。必要なのは現在の合計とカウントだけです。また、最後の呼び出しを別のブロックに入れる必要も、最後の呼び出しscan.next()を囲む必要もありません。println

public class InputLoop
{
    public static void main(String[] args)
    {
        Scanner scan = new Scanner(System.in);
        System.out.println("Enter an integer to continue or a non integer to finish");

        int total = 0;
        int count = 0;
        while (scan.hasNextInt())
        {
            System.out.println("Enter an integer to continue or a non integer to finish");
            int value = scan.nextInt();
            total += value;
            ++count;
            System.out.print("user: ");
        }
        System.out.println ("You entered " + count + " values with a total of " + total);
    }
}
于 2012-11-21T18:27:12.140 に答える