我正在尝试完成此代码并使其正常工作,但我无法弄清楚为什么它不起作用,该程序正在使用方法根据考试分数输入计算成绩并生成通过/失败字符串。到目前为止,我已经将程序很好地组合在一起,最后一个方法无法运行或编译。编译器说:
error: cannot find symbol
gradeMessage(examGrade);
^
但是,正如我的程序所示,方法就在那里。那么我做错了什么?警告一句,因为这是一个评估,主要方法必须只有四个语句,没有其他内容。
import java.util.Scanner;
public class GradeClassifier
{
public static void main(String[] args) {
titleString();
int examMark = getMark();
examGrade(examMark);
gradeMessage(examGrade);
}
/**
Prints title of the program
@param title the string with dashed underline
*/
public static void titleString() {
// Print Title
System.out.println("Grade Classifier\n****************");
}
/**
Gets the exam mark for the user
@param getMark from scanner
@return the mark
*/
public static int getMark() {
// Declare and create a Scanner to read input values
Scanner in = new Scanner(System.in);
System.out.println("");
System.out.print("Enter exam mark :> ");
int mark = in.nextInt();
return mark;
}
/**
Determine the grade
@param mark
@return string grade
*/
public static String examGrade(int mark) {
// Print out grade
String grade;
if (mark <= 100 && mark >=70) {
grade = "A";
} else if (mark <= 69 && mark >= 60) {
grade = "B";
} else if (mark <= 59 && mark >= 50) {
grade = "C";
} else if (mark <= 49 && mark >= 40) {
grade = "D";
} else {
grade = "F";
}
return grade;
}
/**
Display grade message
@param result to find pass or fail
*/
public static void gradeMessage(String result) {
// Compute if grade leads to pass or fail
String message;
if (result == "F") {
System.out.println("Unfortunately, you have a Grade F, so you have"
+ " failed this exam");
} else {
System.out.println("Congratulations, you are awarded a Grade"
+ message + " Pass");
}
}
}
最佳答案
首先,我注意到在您的最后一个方法gradeMessage
中,您创建了一个字符串变量message
并尝试将其打印出来,而不是尝试打印传递给的结果参数你的方法。例如,您的最后一个方法应如下所示:
public static void gradeMessage(String result) {
// Compute if grade leads to pass or fail
if (result == "F") {
System.out.println("Unfortunately, you have a Grade F, so you have failed this exam");
}
else {
System.out.println("Congratulations, you are awarded a Grade" + result + " Pass");
}
}
现在,如果您想结合使用该方法,您最终会得到一个如下所示的 main 方法:
public static void main(String[] args) {
titleString();
int examMark = getMark();
gradeMessage(examGrade(examMark));
}
在此主方法中,我们调用 examGrade
方法并传入参数 examMark
。然后将从 examGrade
方法返回的字符串值传递到 gradeMessage
方法。
关于java - 如何将此方法与另一种方法结合使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27111273/