Java 如何更正此代码?

Java 如何更正此代码?,java,Java,我必须用Java做一个GPA计算器。。。 用户将输入课程名称、获得的分数和百分比。。。 程序将分别输出所有科目的成绩和分数 然后程序将输出平均GPA。。。 程序也会给出关于GPA的评论,比如如果它是4.0。。。。 卓越将在输出中显示。。。。。。 我不是要代码,我只是想得到适当的指导,如何解决这个问题,比如函数应该是什么 我制作或将在何处应用循环?(此类指导) 我试过这样做 import java.util.Scanner; public class Calc {

我必须用Java做一个GPA计算器。。。 用户将输入课程名称、获得的分数和百分比。。。 程序将分别输出所有科目的成绩和分数
然后程序将输出平均GPA。。。 程序也会给出关于GPA的评论,比如如果它是4.0。。。。 卓越将在输出中显示。。。。。。 我不是要代码,我只是想得到适当的指导,如何解决这个问题,比如函数应该是什么 我制作或将在何处应用循环?(此类指导)

我试过这样做

     import java.util.Scanner;

     public class Calc {

     public static void main(String[] args) {

     Scanner sc = new Scanner(System.in);
     System.out.println("Enter number of a Subjects");
     int nm = sc.nextInt();

     for(int i=0;i<=nm;i++)
     {
      System.out.println("Enter name of a Subject ");
                String Sub1 = sc.next();
       System.out.println("Enter the Obtained marks of a Subject");
                int ObtM = sc.nextInt();


                if(ObtM<40)
                {
                System.out.println("Grade is F");
                System.out.println("GradePoint is 0");
                System.out.println("Remarks=Fail");
                }
            else if(ObtM<=49&&ObtM>=40)
                {

                System.out.println("Grade is D");
                System.out.println("GPA is 1");
                System.out.println("Remarks=pass");
                }
            else if(ObtM<=50&&ObtM>=64)

                {

                System.out.println("Grade is C");
                System.out.println("GPA is 2");
                System.out.println("Remarks=Satisfactory");
                }
            else if(ObtM<=65&&ObtM>=79)

                {

                System.out.println("Grade is B");
                System.out.println("GPA is 3");
                System.out.println("Remarks=Good");

                }
           else if(ObtM<=80&&ObtM>=100)

                {

                System.out.println("Grade is A");
                System.out.println("GPA is 4");
                System.out.println("Remarks=Excellent");
                }
                int percentage=ObtM*100/100;
                System.out.println("Percentage is "+percentage);

                }

            }
import java.util.Scanner;
公共类计算{
公共静态void main(字符串[]args){
扫描仪sc=新的扫描仪(System.in);
System.out.println(“输入主题数量”);
int nm=sc.nextInt();

对于(int i=0;i你在用面向对象的语言编程,所以要好好利用它!我会为家庭作业编写一个类,其中包含参数:课程名称、作业名称、成绩等。其美妙之处在于,你可以将所有作业存储为一个数组,并循环显示你想要显示的内容。所有的计算都可以uld将在单独的分配实例中处理

此组织将帮助您清理代码,并使问题更易于检测。请在Oracle文档中阅读更多有关这种编码方式的信息

之所以只有一个
if
语句有效,是因为您已反转了所有符号。您要求您的程序识别不存在的数字,即:分数小于一个数字,也大于同一个数字。通过切换小于和大于语法,您将实现您试图找到的结果

例如:

if (ObtM <=50 && ObtM >= 64)
if(ObtM=64)
变成

if (ObtM >=50 && ObtM <= 64)

if(ObtM>=50&&ObtM您的
if
语句完全错误。
if(ObtM=64)
需要一个小于51且大于63的数字。您希望条件是相反的(
ObtM>=50&&ObtM自己完成作业!您当前的代码在哪些方面没有按预期工作?您的问题在哪里?我们很乐意回答特定问题,但不提供辅导服务。感谢您的精彩评论只有此循环有效(ObtM