将返回的变量传递给另一个方法

时间:2017-11-17 10:03:28

标签: java

我正在尝试将我返回的标记变量传递给另一种方法,以便可以检查它以确定等级。当我尝试运行该程序时,它告诉我它找不到我正在传递给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);
    }

}

2 个答案:

答案 0 :(得分:2)

getMark();替换为int mark = getMark();
这将创建一个新的int类型变量标记,并保存getMark()返回的值,然后传递给determineGrade(mark);

此外,在方法getMark()中,无需创建变量int mark,只需返回如下:

return in.nextInt();

答案 1 :(得分:0)

在main或class范围内声明您的mark变量。这里的问题是你在getMark()中声明了标记。所以在这种方法之外无法访问它。