6

このプログラムのポイントは、ユーザーが 3 つの試験の点数を入力すると、それらの平均点と成績が返されることです。

現在の書き方では、「public static String getLetterGrade ..」行でエラーが発生し、その理由がわかりません..

public class GradeProblem
{
public static void main(String[] args)
{
 char letterGrade;
 String exam1, exam2, exam3;
 double exam1Score, exam2Score, exam3Score, average; 

 exam1 = JOptionPane.showInputDialog(null, "Enter your score for Exam 1: ");
 exam1Score = Double.parseDouble(exam1.substring(0,2));
 int intExam1Score = (int)exam1Score;

 exam2 = JOptionPane.showInputDialog(null, "Enter your score for Exam 2: ");
 exam2Score = Double.parseDouble(exam2.substring(0,2));
 int intExam2Score = (int)exam2Score;

 exam3 = JOptionPane.showInputDialog(null, "Enter your score for Exam 3: ");
 exam3Score = Double.parseDouble(exam3.substring(0,2));
 int intExam3Score = (int)exam3Score;

 average = (intExam1Score + intExam2Score + intExam3Score) / 3;

 int intAvergage = (int)average;
 letterGrade = getLetterGrade(intAverage);

 System.out.println("Your average is "+average);  
 System.out.println("Your letter grade is "+letterGrade); 

 }

 private static String getLetterGrade(average)
 {
String letterGrade;
switch(intAverage/10)
{
    case 10: letterGrade = "A";
    case 9: letterGrade = "A";
              break;
    case 8: letterGrade = "B";
              break;
    case 7: letterGrade = "C";
              break;
    case 6: letterGrade = "D";
    default:
              letterGrade = "E";
}
return letterGrade;

   }
4

3 に答える 3

3

そのはず

 private static String getLetterGrade(int average){

または任意のデータ型で、switchステートメントで別の存在しない変数を参照していますintAverage

于 2012-11-19T22:29:57.237 に答える
0

パラメータaverageに型がありません。そのはず:

private static String getLetterGrade(int average) {

渡す変数の型と一致させます。

于 2012-11-19T22:31:11.593 に答える
0
private static String getLetterGrade(int average)

variable のタイプを入力するのを忘れました。タイプaverageである必要があるとint思います。

switch(intAverage/10) を switch(average/10) に変更する必要があります。

また、無視したくない場合を除き、精度を乱す int の選択にいくつかの問題が見られます。すべてを int にキャストするのではなく、if ステートメントとスイッチ ケースの範囲を使用します。違いがあるかもしれませんが、そうでない場合もありますが、そのすべてのキャストと精度の低下により、コードが不完全であると感じさせられます。

于 2012-11-19T22:30:50.647 に答える