我的代码哪里出错了?

6tqwzwtp  于 2021-06-30  发布在  Java
关注(0)|答案(4)|浏览(376)

关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。

5年前关门了。
改进这个问题
编辑:
我想我抄错了一点代码!

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方法中编写语句来测试它。
我该怎么做?
谢谢你的帮助/指点。
作记号

rqcrx0a6

rqcrx0a61#

您需要从调用方法 main . 我强烈建议您阅读非常基本的java教程,您缺少了一个非常基本的概念。
一旦你这么做了,你就需要 else . 在你的情况下,如果第一个 if 对以下内容感到满意 if 我们会的。
想想看, if (mark >= 70) 那就确定了 if (mark >= x) 对于任何 x <= 70 .

3lxsmp7m

3lxsmp7m2#

为了使你的代码工作,你需要调用你的方法,因为你所有的编码都是在那部分即打印的基础上的条件。

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 
     }
    }
zbsbpyhn

zbsbpyhn3#

好吧,为了开始这场闹剧,让我们把你的代码编辑成一些能以一种感性的方式编译和工作的东西:

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

}
cu6pst1q

cu6pst1q4#

你计算成绩应该返回成绩,而不是打印出来。如果你想打印它,调用者可以打印等级。

public static char calculateGrade(int mark) {
    return "UUUUEDCBAAAA".charAt(mark/10);
}

System.out.println("Grade = " + calculateGrade(65));

代码的工作方式是利用每个区域是10的倍数这一事实。i、 当你除以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

相关问题