有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用“if”、“while”和“loop”方法时出现java非法表达式

我尝试使用“If”和“While”方法,以及这个程序的“loop”,在这个程序中,你可以输入分数,程序计算这些分数的平均值,并给出一个字母值。该程序在计算平均值时运行良好,但当我尝试使用if和while方法生成字母等级时,它开始给出错误,指出clear和close方法的非法表达式。请帮忙。我正在粘贴主方法。错误是指向了接近结尾的清晰和接近的方法

    public static void main(String[] args)
     {
         GradeCalculator application = new GradeCalculator();
         application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     }

        public void enterJButtonActionPerformed(ActionEvent event)
     {
          getAverageGrade();
     }

      public void getAverageGrade()
        {
            scoreAmount = JOptionPane.showInputDialog("Enter Number of scores to be entered?:");
            numberOfScores = Integer.parseInt(scoreAmount);
            getFillupGrades();
        }

      public void getFillupGrades()
       {
         for(counter = 0; counter < numberOfScores; counter++)
       {
         scoreAmount = JOptionPane.showInputDialog("Enter Score:");
         gradeValues = Integer.parseInt(scoreAmount);
         gradeAccumulator += gradeValues;
        }

        calculateAverage();
        }

        public void calculateAverage()
        {
            averageGrade = gradeAccumulator / numberOfScores;

        if (averageGrade > 89)
         {
           averageGradeJTextField.setText("A");

        if (averageGrade > 79)
         {
           averageGradeJTextField.setText("B");

       if (averageGrade > 69)
        {
         averageGradeJTextField.setText("C");

       if (averageGrade > 64)
        {
        averageGradeJTextField.setText("D");
        }
     else
       {
     averageGradeJTextField.setText("F");
        }

      public void clearJButtonActionPerformed(ActionEvent event)
       {
        averageGradeJTextField.setText("");
       }

      public void closeJButtonActionPerformed(ActionEvent event)
      {
         GradeCalculator.this.dispose();
  }
  }

错误状态为:

 ----jGRASP exec: javac -g GradeCalculator.java

GradeCalculator.java:179: error: illegal start of expression
    public void clearJButtonActionPerformed(ActionEvent event)
    ^
GradeCalculator.java:179: error: illegal start of expression
    public void clearJButtonActionPerformed(ActionEvent event)
           ^
GradeCalculator.java:179: error: ';' expected
    public void clearJButtonActionPerformed(ActionEvent event)
                                           ^
GradeCalculator.java:179: error: ';' expected
    public void clearJButtonActionPerformed(ActionEvent event)
                                                             ^
GradeCalculator.java:184: error: illegal start of expression
    public void closeJButtonActionPerformed(ActionEvent event)
    ^
GradeCalculator.java:184: error: illegal start of expression
    public void closeJButtonActionPerformed(ActionEvent event)
           ^
GradeCalculator.java:184: error: ';' expected
    public void closeJButtonActionPerformed(ActionEvent event)
                                           ^
GradeCalculator.java:184: error: ';' expected
    public void closeJButtonActionPerformed(ActionEvent event)
                                                             ^
GradeCalculator.java:188: error: reached end of file while parsing
}
 ^
9 errors

共 (1) 个答案

  1. # 1 楼答案

    您打开了许多if块,但没有关闭它们(代码正确缩进):

    public void calculateAverage() {
        averageGrade = gradeAccumulator / numberOfScores;
        if (averageGrade > 89) {
            averageGradeJTextField.setText("A");
    
            if (averageGrade > 79) {
                averageGradeJTextField.setText("B");
    
                if (averageGrade > 69) {
                    averageGradeJTextField.setText("C");
    
                    if (averageGrade > 64) {
                        averageGradeJTextField.setText("D");
                    }
                    else {
                        averageGradeJTextField.setText("F");
                    }
    

    按如下方式更改该方法(包括缺少大括号并使用else if而不是if):

    public void calculateAverage() {
        averageGrade = gradeAccumulator / numberOfScores;
        if (averageGrade > 89) {
            averageGradeJTextField.setText("A");
        } // was missing
        else if (averageGrade > 79) {
            averageGradeJTextField.setText("B");
        } // was missing
        else if (averageGrade > 69) {
            averageGradeJTextField.setText("C");
        } // was missing
        else if (averageGrade > 64) {
            averageGradeJTextField.setText("D");
        } // was missing
        else {
            averageGradeJTextField.setText("F");
        } // was missing
    }