Java publicstaticdouble此方法必须返回一个double值

Java publicstaticdouble此方法必须返回一个double值,java,eclipse,Java,Eclipse,我希望有人能看看我这里的代码,告诉我为什么在第88行(公共静态双dblLetterToGrade(String strLetter))它给了我一个错误(如标题中所述)。我是Java新手,所以我可能犯了一个愚蠢的错误,但没有意识到,并可能给我一个解决方案: import javax.swing.JOptionPane; 导入java.io.FileWriter; 导入java.io.*; 导入java.io.PrintWriter; 公共类GPA项目 { 静态字符串strReport、strNa

我希望有人能看看我这里的代码,告诉我为什么在第88行(公共静态双dblLetterToGrade(String strLetter))它给了我一个错误(如标题中所述)。我是Java新手,所以我可能犯了一个愚蠢的错误,但没有意识到,并可能给我一个解决方案:

import javax.swing.JOptionPane;
导入java.io.FileWriter;
导入java.io.*;
导入java.io.PrintWriter;
公共类GPA项目
{
静态字符串strReport、strName、strCreditString、strClass、strGradeString、strLetter;
静态双DbletterTograde,dblTotalWeightedGrades=0,dblGradeVaule=-1;
静态intTotalCredits=0,intCreditsValue=-1;
静态布尔布尔布尔函数=false;
公共静态void main(字符串[]args)引发IOException
{
//询问名称并写入输出头,strReport将从中收集输出文件的数据。
strReport=“用于“+strName+”的类:\n”;
strReport+=“Title\t\t\t\t信用证\t\t\t\t等级\n”;
//计算GPA(如果有类)。
strReport+=“\nGPA:”;
如果(intTotalCredits>0)
{
strReport+=String.format(“%.2f”,dblTotalWeightedGrades/intTotalCredits);
} 
其他的
{
strReport+=“无(无类)。”;
}
//将报告写入classes.txt文件。
PrintWriter输出=新的PrintWriter(新的FileWriter(“classes.txt”);
输出.println(strReport);
output.close();
showMessageDialog(null,“报告已写入文件”);
{
//要求用户输入名称,直到输入有效名称。
while(strName==null)
{
strName=JOptionPane.showInputDialog(“输入您的姓名:”);
}
//允许用户输入类数据,直到没有更多。
而(!布尔芬)
{
字符串strClass=JOptionPane.showInputDialog(“输入类名(取消以完成):”;
if(strClass==null)
{
布尔芬=真;
} 
其他的
{
//要求分数。
而(dblGradeVaule==-1)
{
strGradeString=JOptionPane.showInputDialog(“输入等级(大写):”;
if(strGradeString==null)
{
showMessageDialog(null,“请输入分数”);
} 
否则{
dblGradeVaule=DblettertoGrade(strleter);
if(dblGradeVaule==-1){
JOptionPane.showMessageDialog(null,“分数无效,请重新输入”);
}
}
}
}
}
}
}
//将字母级别转换为数值
公共静态双dblLetterToGrade(字符串strLetter)
{
双dblGrade=0;
开关(strLetter)
{
案例“A”:dblGrade=4.00;中断;
案例“A-”:dblGrade=3.7;中断;
案例“B+”:dblGrade=3.2;中断;
案例“B”:dblGrade=3.0;中断;
案例“B-”:dblGrade=2.7;中断;
案例“C+”:dblGrade=2.2;中断;
案例“C”:dblGrade=2.0;中断;
案例“D+”:dblGrade=1.2;中断;
案例“D”:dblGrade=1.00;中断;
案例“D-”:dblGrade=0.7;中断;
案例“F”:dblGrade=0;中断;
}
{
//申请学分。
while(intCreditsValue==-1)
{
strCreditsString=JOptionPane.showInputDialog(“输入学分:”);
intCreditsValue=Integer.parseInt(strCreditsString);

if(intCreditsValue您必须在dblLetterToGrade(String strLetter)方法的末尾返回一个double值,因为该方法有一个double

//将字母等级转换为数值
公共静态双dblLetterToGrade(字符串strLetter)
{
双dblGrade=0;
开关(strLetter)
{
案例“A”:dblGrade=4.00;中断;
案例“A-”:dblGrade=3.7;中断;
案例“B+”:dblGrade=3.2;中断;
案例“B”:dblGrade=3.0;中断;
案例“B-”:dblGrade=2.7;中断;
案例“C+”:dblGrade=2.2;中断;
案例“C”:dblGrade=2.0;中断;
案例“D+”:dblGrade=1.2;中断;
案例“D”:dblGrade=1.00;中断;
案例“D-”:dblGrade=0.7;中断;
案例“F”:dblGrade=0;中断;
}
return dblGrade;//返回值,因为该方法具有双返回类型。

}
您需要
在方法末尾返回一个双精度。您没有返回任何内容。但是,由于您的方法装饰是
公共静态双精度
,因此它希望方法返回一个
双精度
公共静态双精度
声明您的方法是公共的、特定于类的,并且返回一个双精度。其中您的方法不返回任何内容,它不能是
double
方法,并且应该转换为
void
方法。即
public static void