Java程序不会编译

use*_*272 -1 java

我正在jgrasp下制作这个程序而且我收到了一个错误.我检查了我的程序的拼写和语法,似乎是正确的.请帮助我 - 是否有一些我错过的导致我所有错误的东西?

import javax.swing.*;


public class Testscore
{
   public static void main(String[] args) 
    {
       int numberofTests = 0;

       double grade = new double[numberofTests];

       double startgrade = 0;

        int x = 1 ;

       String strInput;

    // Get how many tests are used

       strInput = JOptionPane.showInputDialog(null, "How many tests do you have? ");
       numberofTests = Integer.parseInt(strInput);

       grade = new double[(int) numberofTests];
         do

         {

       for (int index = 0; index < grade.length; index++)
       {
           strInput = JOptionPane.showInputDialog(null, "Enter Test Score." + (index + 1));
           grade = Double.parseDouble(strInput);

           if (grade[index] < 0 || grade[index] > 100 )
           {   
               try 
                {
                   throw new InvalidTestScore();
                    x=2;
                }

               catch (InvalidTestScore e)
               {
                   e.printlnStackTrace();
                    system.out.println ("Choose a test score between 0 and 100");
               }
           }   
       }
       }
         while (x==1);

       for (int index = 0; index < grade.length; index++ )

            {
                startgrade += grade[index];
            }

            average = startgrade/grade.length;

            System.out.print("The average is: " + average);

    }
}
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误.

Testscore.java:12: incompatible types

found   : double[]

required: double

       double grade = new double[numberofTests];

                      ^
Testscore.java:25: incompatible types

found   : double[]

required: double

       grade = new double[(int) numberofTests];

               ^
Testscore.java:30: double cannot be dereferenced

       for (int index = 0; index < grade.length; index++)
                                        ^
Testscore.java:35: array required, but double found

           if (grade[index] < 0 || grade[index] > 100 )
                    ^
Testscore.java:35: array required, but double found

           if (grade[index] < 0 || grade[index] > 100 )
                                        ^
Testscore.java:39: cannot find symbol
symbol  : class InvalidTestScore
location: class Testscore
                   throw new InvalidTestScore();
                             ^
Testscore.java:43: cannot find symbol

symbol  : class InvalidTestScore

location: class Testscore

               catch (InvalidTestScore e)
                      ^
Testscore.java:46: package system does not exist

                    system.out.println ("Choose a test score between 0 

and 100");
                          ^
Testscore.java:53: double cannot be dereferenced

       for (int index = 0; index < grade.length; index++ )
                                        ^
Testscore.java:56: array required, but double found

                startgrade += grade[index];

     ^
Testscore.java:59: cannot find symbol

symbol  : variable average

location: class Testscore

            average = startgrade/grade.length;
            ^
Testscore.java:59: double cannot be dereferenced

            average = startgrade/grade.length;
                                      ^
Testscore.java:61: cannot find symbol

symbol  : variable average

location: class Testscore

            System.out.print("The average is: " + average);
                                                  ^
13 errors
Run Code Online (Sandbox Code Playgroud)

ide*_*ide 6

在第12行,尝试更改

double grade = new double[numberofTests];
Run Code Online (Sandbox Code Playgroud)

double[] grade = new double[numberofTests];
Run Code Online (Sandbox Code Playgroud)

所有后续错误似乎是编译器思想,后果gradedouble不是他们的阵列.例如,提到"解除引用"是指索引到数组中; 索引标量是不合理的double.