0

不特定数の整数を読み取り、合計、正、負、平均を見つけるプログラムを試みています。私の問題は、実行して1つの整数を入力できるようにしてから何もしないか、次のコードを使用すると、数値の入力が停止しないため、通過できないことです。number = 0 の出力が正しいです。

public class Compute {

// Count positive and negative numbers and compute the average of numbers
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        int sum = 0;
        positive = 0;
        negative = 0;
        total = 0;

        System.out.println("Enter an integer, the input ends if it is 0: ");
        int numbers = input.nextInt();

        do {
            if (numbers > 0) {
                positive++;//add 1 to positive count
            } else if (numbers < 0) {
                negative++;//add 1 to negative count
            }//end else if

            sum += numbers; //add integer input to sum

            numbers = input.nextInt();
            total++;
        } while (numbers != 0);

        if (numbers == 0) {
            System.out.println("No numbers are entered except " + numbers);
        }//end if
    }
}
4

2 に答える 2

1

以下のコードを試してください。ループを終了し、実行時に出力タイプ 0 を入力として表示します。

import java.util.Scanner;

public class Compute {

    // Count positive and negative numbers and compute the average of numbers
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        int sum = 0;
        int positive = 0;
        int negative = 0;
        int total = 0;

        System.out.println("Enter an integer, the input ends if it is 0: ");
        int numbers = input.nextInt();

        do {

            if (numbers > 0) {
                positive++;// add 1 to positive count
                sum += numbers; // add integer input to sum
            }

            else if (numbers < 0) {
                negative++;// add 1 to negative count
                sum -= numbers; // add integer input to sum
            }

            numbers = input.nextInt();
            total++;

        } while (numbers != 0);

        System.out.println("The number of positives is \t " + positive);
        System.out.println("The number of negatives is \t " + negative);
        System.out.println("The total count of number is \t " + total);
        System.out.println("The sum of all number is    \t" + sum);
        System.out.println("The average is           \t"
                + ((double) sum / (positive + negative)));

    }// end main
}// end Compute
于 2013-02-08T04:01:58.277 に答える
1

次のコード スニペットは、コンソールから整数を読み取る方法の良い例です。

Scanner scanner = new Scanner(System.in);
do {
  int i = scanner.nextInt();
  // ...
} while (scanner.hasNext());

メソッド呼び出しは、scanner.hasNext()ユーザーがコンソールで次の番号を入力するまでブロックされます

于 2013-02-08T04:08:40.600 に答える