【问题标题】:How can I use this method in conjunction with another method?如何将此方法与另一种方法结合使用?
【发布时间】:2015-01-22 13:05:00
【问题描述】:

我正在尝试完成此代码并使其正常工作,但我无法弄清楚它为什么不工作,该程序正在使用方法从考试分数输入中计算成绩并输出通过/失败字符串。到目前为止,我一直在很好地组合程序,最后一个方法将无法运行或编译。编译器说:

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");
         }
     }
}   

【问题讨论】:

  • examGrade(examMark); 返回一个 int,但您没有将它分配给任何东西,因此您不能再次使用该 int。你需要像int grade = examGrade(examMark); 这样的东西。然后,您将使用此 int 调用您的下一个方法,例如 gradeMessage(grade);

标签: java string methods symbols


【解决方案1】:

首先,我注意到在您的最后一个方法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));
}

在这个main方法中我们调用examGrade方法并传入参数examMark。然后将examGrade 方法返回的字符串值传递给gradeMessage 方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-29
    • 1970-01-01
    • 2015-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-10
    • 1970-01-01
    相关资源
    最近更新 更多