繁体   English   中英

为什么我没有收回任何价值?

[英]Why am I not getting any values back?

当运行下面的方法时,我什么也得不到。 总是被终止而没有任何结果。 有人可以告诉我为什么我没有得到任何结果吗?

我已经根据评论进行了调整,但是还没有工作。 我在下面添加了主要方法;

public class ModuleGrader {
final int examID = 123;
String excellent =null;
String good=null;
String satisfactory=null;
String compensatableFail=null;
String outrightFail=null;
int grade;

public String gradeModule(int mark) {
    String result = null;
    if (mark>=70 && mark<=100) 
    {
        result = excellent;
        System.out.println(" ");
        }
    else if (mark>=60 && mark<=69)
    {
        result = good;
    }
    else if (mark>=50 && mark<=59)
    {
        result = satisfactory;
    }
    else if (mark>=40 && mark<=49)
    {
        result = compensatableFail;
    }
    else if (mark>=0 && mark<=39) {
        result = outrightFail;
    }
    else {
        System.out.println("Invalid entery, please insert an number between 100-0");
                }

    return result;
}

因此,我添加了调用主方法;

调用方法可能是问题吗?

public static void main(String[] args) {
        ModuleGrader mg=new ModuleGrader();
        mg.gradeModule(100);
        mg.gradeModule(66);}

您没有为String excellent;分配任何值String excellent; String good; ,因此失败,因为调用它们时这些值尚未初始化为任何值。

  1. 您怎么知道它不起作用? 您没有最终结果输出到控制台。 我添加了System.out.println()来更正此问题。

  2. 您不能从静态对象中引用非静态对象。 public class ModuleGrader更改为public static class ModuleGrader

最终工作守则

public class Main {
    public static void main(String[] args) {
        ModuleGrader mg=new ModuleGrader();
        System.out.println(mg.gradeModule(100));
        System.out.println(mg.gradeModule(66));
    }
    public static class ModuleGrader {
        final int examID = 123;
        String excellent = null;
        String good = null;
        String satisfactory = null;
        String compensatableFail = null;
        String outrightFail = null;
        int grade;

        public String gradeModule(int mark) {
            String result = null;
            if (mark >= 70 && mark <= 100) {
                result = excellent;
                System.out.println(" ");
            } else if (mark >= 60 && mark <= 69) {
                result = good;
            } else if (mark >= 50 && mark <= 59) {
                result = satisfactory;
            } else if (mark >= 40 && mark <= 49) {
                result = compensatableFail;
            } else if (mark >= 0 && mark <= 39) {
                result = outrightFail;
            } else {
                System.out.println("Invalid entery, please insert an number between 100-0");
            }

            return result;
        }
    }
}

您需要在要分配的字符串两边加上引号。

result = excellent; 应该是result = "excellent"; 如此一来,您所有的作业都将return

public class ModuleGrader {
    final int examID = 123;
    //String excellent=null;
    //String good=null;
    //String satisfactory=null;
    //String compensatableFail=null;
    //String outrightFail=null;
    int grade;

    public String gradeModule(int mark) {
        String result = null;
        if (mark>=70 && mark<=100) 
        {
            result = "excellent";
            System.out.println(" ");
            }
        else if (mark>=60 && mark<=69)
        {
            result = "good";
        }
        else if (mark>=50 && mark<=59)
        {
            result = "satisfactory";
        }
        else if (mark>=40 && mark<=49)
        {
            result = "compensatableFail";
        }
        else if (mark>=0 && mark<=39) {
            result = "outrightFail";
        }
        else {
            System.out.println("Invalid entery, please insert an number between 100-0");
                    }

        return result;
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM