我正在尝试将我返回的标记变量传递给另一种方法,以便可以检查它以确定等级。当我尝试运行该程序时,它告诉我它找不到我正在传递给determineGrade方法的符号“mark”。我想知道我应该如何将标记传递给determineGrade以便程序可以运行?
import java.util.Scanner;
public class GradeClassifier {
public static void main(String[] args) {
title();
getMark();
determineGrade(mark);
displayGrade(mark, grade);
}
public static void title() {
System.out.println("Grade Classifier\n****************");
}
public static int getMark() {
Scanner in = new Scanner(System.in);
System.out.println("Enter exam mark :> ");
int mark = in.nextInt();
return mark;
}
public static String determineGrade(int mark) {
String grade;
if (100 >= mark >= 70)
grade = "Grade A (Pass)";
else if (69 >= mark >= 60)
grade = "Grade B (Pass)";
else if (59 >= mark >= 50)
grade = "Grade C (Pass)";
else if (49 >= mark >= 40)
grade = "Grade D (Pass)";
else if (39 >= mark >= 0)
grade = "Grade F (Fail)";
else
grade = "You did not input a valid number.";
return grade;
}
public static void displayGrade(int mark, String grade) {
if (100 >= mark >= 0)
System.out.print("Congratulations, you are awarded a " + grade + ".");
else
System.out.print(grade);
}
}
答案 0 :(得分:2)
将getMark();
替换为int mark = getMark();
这将创建一个新的int类型变量标记,并保存getMark()
返回的值,然后传递给determineGrade(mark);
。
此外,在方法getMark()
中,无需创建变量int mark
,只需返回如下:
return in.nextInt();
答案 1 :(得分:0)
在main或class范围内声明您的mark变量。这里的问题是你在getMark()中声明了标记。所以在这种方法之外无法访问它。