1

不特定の 0 ~ 100 点 (最大 100 点) を読み取り、-1 または負の数が入力されると停止する宿題用のプログラムを作成しています。これを Do While ループに入れました。このループは、Scanner から -1 が取り込まれたときに終了するように設定されています。ループには、ループが通過した回数を追跡するカウンター、後で平均を計算するためにすべての入力行を加算する加算器、およびチェック後に入力値を配列に送信する手段があります。数値が -1 かどうかを確認します。これを行う代わりに、ループは 2 ループごとにカウンターをインクリメントするだけで、-1 は偶数サイクル番号でのみループを終了します。それ以外の場合は、次のサイクルが終了するまで待機します。これは私を完全に困惑させます。なぜこれを行っているのかわかりません。誰かがエラーを指摘できますか? 前もって感謝します!これは私がこれまで持っているすべてです。

import java.util.Scanner;

public class main {

//Assignment 2, Problem 2
//Reads in an unspecified number of scores, stopping at -1. Calculates the average and 
//prints out number of scores below the average.
public static void main(String[] args) {

    //Declaration
    int Counter = 0;    //Counts how many scores are
    int Total = 0;      //Adds all the input together
    int[] Scores = new int[100]; //Scores go here after being checked
    int CurrentInput = 0; //Scanner goes here, checked for negative, then added to Scores
    Scanner In = new Scanner(System.in);

    do {
        System.out.println("Please input test scores: ");
        System.out.println("Counter = " + Counter);
        CurrentInput = In.nextInt();
        Scores[Counter] = CurrentInput;
        Total += In.nextInt();
        Counter++;          
    } while ( CurrentInput > 0);

    for(int i = 0; i < Counter; i++) {
        System.out.println(Scores[i]);
    }


    System.out.println("Total = " + Total);

    In.close();


}

}
4

2 に答える 2

6
    CurrentInput = In.nextInt();
    Scores[Counter] = CurrentInput;
    Total += In.nextInt();

を 2 回呼び出しIn.nextInt()ています。つまり、各ループ反復で 2 行を読み取っています。

于 2013-02-12T00:33:43.147 に答える
1
CurrentInput = In.nextInt();
Scores[Counter] = CurrentInput;
Total += CurrentInput;

代わりにこれを使用してください。

于 2013-02-12T00:51:04.127 に答える