2017-12-04 10 views
0

私は初心者です。メソッドをコードに実装するように割り当てられました。このグレードの平均コードはうまく機能していましたが、一度メソッドに分割すると、リターン関数が機能しなくなりました。私はブラケットを動かしてコードを整理してみましたが、役に立たないものです。私は事前に感謝...それは私の変数のスコープで行う必要がありと信じて:)Javaで変数を返す/渡す

package milsteadgrades; 
import java.util.Scanner; 

public class MilsteadGrades { 


public static void main(String[] args) 

{ 
//Call methods to execute program. 
displayInfo(); 
double numOfgrades = getInput(); 
double average = getAverage(numOfgrades); 
char letgrade = determineLetterGrade(average); 
displayGrades(average, letgrade); 
} 


public static void displayInfo() 

{ 
System.out.println("Mallory Milstead"); 
System.out.println("This program will prompt the user for a number of 
grades" 
+ " and each grade. Then the program calculates and displays the average and 
letter"+" grade."); 
} 

public static double getInput() 

{ 
//Prompt user to enter number of grades and assign that number to 
numOfgrades. 
System.out.print("How many grades would you like to average? "); 
Scanner keyboard = new Scanner(System.in); 
double numOfgrades = keyboard.nextDouble(); 
return numOfgrades; 
} 

public static double getAverage(numOfgrades) 

{ 
//Prompt the user to enter grades. 
System.out.println("Enter exam scores : "); 
Scanner keyboard = new Scanner(System.in); 
double total = 0; 
for (double i = 0; i < numOfgrades; i++) { 
double grade = keyboard.nextDouble(); 
total+=grade;} 
double average = total/numOfgrades; 
return average; 
} 

public static char determineLetterGrade(average) 

{ double testscore = average; 
    char letgrade; 

    if (testscore >= 90) 
    { 
     letgrade = 'A'; 
    } else if (testscore >= 80) 
    { 
     letgrade = 'B'; 
    } else if (testscore >= 70) 
    { 
     letgrade = 'C'; 
    } else if (testscore >= 60) 
    { 
     letgrade = 'D'; 
    } else 
    { 
     letgrade = 'F'; 
    } 
    return letgrade; 
    } 

public static void displayGrades(average, letgrade) 

{ 
System.out.println("The average of the grades is "+average+ " and the 
letter grade"+ " is " + letgrade+".");} 

} 

ライン-public静的ダブルgetAverage(numOfgrades)で始まる - 、私は継続的に「シンボルを見つけることができません」を取得しますエラーメッセージ。私の変数は認識されていません。

+4

「シンボルが見つかりません」というコンパイルエラーは何を意味しますか?(https://stackoverflow.com/questions/25706216/what-does-a-cannot-find-symbol-compilation-error-mean ) –

+0

Javaはモジュール言語ではありません。これはOBJECT言語です。静的メソッド(実際にはOPセンスに違反します)をプログラミングしながら、エレガントな、または高品質のJavaコードについては言い難い –

+0

ええ、私はこれに新しいですし、ちょっと混乱しました。代わりにメソッドを実装すると言っていたはずです。ヘッドアップをありがとう。 – mal0689

答えて

1

引数の型をgetAverageと宣言する必要があります。あなたの他の方法(ないモジュール)のためのSimiliarly同様

public static double getAverage(double numOfgrades)

。ヒントについてはthisまたはthisをお読みください。

+0

カールリード...ありがとうございます。私はそれが何か簡単だと分かっていました。私はそれをし、それは魅力のように初めて走った。あなたは私に多くの手間と時間を節約しました。ご多幸を祈る :) – mal0689