编辑:
我认为我复制了稍微错误的代码!
public class GradeCalculator {
public static void calculateGrade(int mark) {
if (mark >= 70) System.out.println("grade = A");
if (mark >= 60) System.out.println("grade = B");
if (mark >= 50) System.out.println("grade = C");
if (mark >= 40) System.out.println("grade = D");
if (mark < 40) System.out.println("grade = F");
}
public static void main(String[] args) {
}
}
我只是刚刚开始尝试Java(或任何编程。我正在通过练习题解问题。我有这段代码,需要在main方法中编写语句来测试它。
我该怎么做?
感谢您提供正确方向的任何帮助/指示。
标记
答案 0 :(得分:1)
您需要从main
调用该方法。我强烈建议你浏览very basic Java tutorial,你错过了一个非常基本的概念。
完成后,您需要else
。在您的情况下,如果满足第一个if
,则以下if
将是。
考虑一下,if (mark >= 70)
然后肯定if (mark >= x)
任何x <= 70
。
答案 1 :(得分:1)
好吧,为了开始这场闹剧,让我们将你的代码编辑成一些以合理的方式编译和工作的代码:
public class GradeCalculator {
public static void claculateGrade (int mark) {
if (mark >= 70) System.out.println("grade = A");
else if (mark >= 60) System.out.println("grade = B");
else if (mark >= 50) System.out.println("grade = C");
else if (mark >= 50) System.out.println("grade = D");
else if (mark >= 40) System.out.println("grade = E");
}
public static void main (String[] args) {
}
}
现在,要打印一个等级的人会得到一些分数,你可以这样称呼你的“claculateGrade”方法:
public static void main (String[] args) {
claculateGrade(55);
}
这应该将“grade = C”打印到控制台。完整代码:
public class GradeCalculator {
public static void claculateGrade (int mark) {
if (mark >= 70) System.out.println("grade = A");
else if (mark >= 60) System.out.println("grade = B");
else if (mark >= 50) System.out.println("grade = C");
else if (mark >= 50) System.out.println("grade = D");
else if (mark >= 40) System.out.println("grade = E");
}
public static void main (String[] args) {
claculateGrade(55);
}
}
现在,人们可以进一步改善这一点。让我们从使该方法返回等级开始:
public static char getGrade (int mark) {
if (mark >= 70) return 'A';
else if (mark >= 60) return 'B';
else if (mark >= 50) return 'C';
else if (mark >= 50) return 'D';
else if (mark >= 40) return 'E';
/* if below 40, return "fail" */
return 'F';
}
这会将您的代码更改为:
public class GradeCalculator {
public static char getGrade (int mark) {
if (mark >= 70) return 'A';
else if (mark >= 60) return 'B';
else if (mark >= 50) return 'C';
else if (mark >= 50) return 'D';
else if (mark >= 40) return 'E';
/* if below 40, return "fail" */
return 'F';
}
public static void main (String[] args) {
System.out.println("Grade: " + getGrade(55));
}
}
答案 2 :(得分:0)
您计算成绩应返回成绩,而不是打印成绩。如果你想打印它,打电话者可以打印等级,例如
public static char calculateGrade(int mark) {
return "UUUUEDCBAAAA".charAt(mark/10);
}
System.out.println("Grade = " + calculateGrade(65));
代码的工作方式是它利用了每个区域是10的倍数的事实。即当你除以10时,你得
100 -> 10
90 - 99 -> 9
80 - 89 -> 8
70 - 79 -> 7
60 - 69 -> 6
50 - 59 -> 5
40 - 49 -> 4
30 - 39 -> 3
20 - 29 -> 2
10 - 19 -> 1
0 - 9 -> 0
所以现在所有的数字都变成了0到10的区域。但是我们希望成绩作为一个字母,所以你得到
100 -> A
90 - 99 -> A
80 - 89 -> A
70 - 79 -> A
60 - 69 -> B
50 - 59 -> C
40 - 49 -> D
30 - 39 -> E
20 - 29 -> U
10 - 19 -> U
0 - 9 -> U
答案 3 :(得分:0)
要使代码正常工作,您需要调用方法,因为所有编码都在该部分完成,即根据条件进行打印。
public class GradeCalculator { // This is your class
public static void calculateGrade(int mark) {
//This is the method containing conditions
on the basis of these conditions the corroesponding
sentences will be printed
if (mark >= 70) System.out.println("grade = A");
if (mark >= 60) System.out.println("grade = B");
if (mark >= 50) System.out.println("grade = C");
if (mark >= 40) System.out.println("grade = D");
if (mark < 40) System.out.println("grade = F");
}
//now u need to call the method from your main method.. main method is the entry point of your program so it will start from main then check your method call and do as per the code written there
public static void main(String[] args) {
// to call your method just right your method name and enter marks
calculateGrade(50); // you can enter any integer
}
}