-3

私はウェブサイトからJavaプログラミングの練習をしています。配列を使用してこの出力を表示する必要があります。

Enter the number of students: 3
Enter the grade for student 1: 55
Enter the grade for student 2: 108
Invalid grade, try again...
Enter the grade for student 2: 56
Enter the grade for student 3: 57
The average is 56.0

これが私のこれまでのソースコードです。結果を表示していますが、正しく機能していません。1人目の生徒は生徒数と成績が必要です。しかし、その後停止します。任意の数字を押してEnterキーを押すと、次の学年などを要求します。そしてこのようにして、最後に平均を出力します。許可されていない入力を入力すると、それをキャッチします。このコードの何が問題になっていますか。

package array;

import java.util.Scanner;

public class GradesAverage {

    public static void main(String[] args) {

        int numStudents, sum=0;
        int[] grades;

        Scanner in = new Scanner(System.in);

        System.out.print("Enter number of students : ");
        numStudents = in.nextInt();

        grades = new int[numStudents];
      //System.out.println(grades.length);

        for (int i = 0; i < numStudents; i++) {
              System.out.print("Enter grade of student "+i+" :");
              grades[i] = Integer.parseInt(in.next());
              if(grades[i]>100 || grades[i]<0)
                {
                  System.out.println("It is not a valid number!");
                  i--;
                  continue;
                }

              //grades[i] = Integer.parseInt(in.next());
              sum+=grades[i];
        }

        System.out.print("Average grades are: "+sum/numStudents);

        in.close();
    }

}
4

1 に答える 1

1

一時変数を使用する代わりに、次のような変数を作成します。

int grade = in.nextInt()

次に確認してくださいif(grade > 100 || grade < 0) // error message

in.next()ユーザーに別の番号を要求するため、2回使用しないでください。

于 2012-07-29T12:20:03.193 に答える