【问题标题】:Method is not returning int方法不返回 int
【发布时间】:2016-07-01 16:35:39
【问题描述】:

我有这个方法:

int totalNumGrades(){
    numTotal= numA+numB+numC+numD+numF;
    System.out.print("Total number of grades: ");
    return numTotal;
}

所有的变量都是这样初始化的:

private int numA, numB, numC, numD, numF, numTotal;

可以这么说:

numA=3, numB=3, numC=2, numD=1, numF=1

因此 numTotal 必须等于 10。这是问题所在,当我运行代码时,我得到的输出结果是:

Total number of grades:

就是这样,numTotal 没有出现。如果我将 numTotal 放在 print 语句中,它会像预期的那样显示为 10,但由于某种原因,当我尝试返回 numTotal 时,什么都没有显示。我在网上找不到解决方案,所以请帮忙。我做错了什么?

编辑

感谢所有答案,这很快,请原谅我对这个主题缺乏了解,我不知道您可以将方法放在打印语句中。每天学些新东西。亲爱的朋友们!

【问题讨论】:

  • 我猜这是因为您没有编写代码来打印您想要打印的内容。请发帖Minimal, Complete, and Verifiable example
  • return 本身并不打印任何内容。如果您编写的代码获取返回值并打印它,那么它将被打印。
  • LMAO - 对不起..太搞笑了。
  • 说真的,有人赞成这个问题?
  • @childofsoong SO 以神秘的方式工作。

标签: java methods int return


【解决方案1】:

你需要改变

System.out.print("Total number of grades: ");

System.out.print("Total number of grades: " + numTotal);

另外,您可以在调用方法中编写类似的打印语句来打印返回值。

【讨论】:

  • 这不是@ioaop 想要的,因为他/她说“如果我将 numTotal 放在 print 语句中,它会像预期的那样输出 10”
  • 我回答了 OP 的这个问题:'当我运行代码时,我得到的输出是:总成绩:就是这样,numTotal 没有出现。'我还添加了信息以在调用者方法中打印号码。
【解决方案2】:

如您所说,要在 Java 中打印某些内容,您必须将其放在“打印语句中”。

如果不将值传递给printprintln 或等效项,就无法神奇地打印值。

【讨论】:

  • 你也可以使用write()或者其他方式打印一些东西,但这不是魔术。
【解决方案3】:

return numTotal; 不打印任何内容。它只是将 10 返回到调用该方法的位置。相反,将调用该方法的代码更改为

System.out.printf("Total number of grades: %d", totalNumGrades());

然后删除方法内部的打印语句。最好不要从方法内部打印内容,除非这是方法名称所描述的方法的目的。

另外,如果您不打算在全类范围内使用 numTotal,请不要在全类范围内存储它。
就做return numA+numB+numC+numD+numF;

【讨论】:

  • 请注意,System.out.print("Total number of grades: " + totalNumGrades()); 的作用与此处的 printf 语句完全相同。我只是更喜欢printf
【解决方案4】:

从主方法调用方法totalNumGrades()
例如:

public static void main(String[] args){
    System.out.print(totalNumGrades());
}

你可以使用同样的方法

System.out.print("Total number of grades: " + numTotal);

【讨论】:

    【解决方案5】:

    我认为你没有调用你正确定义的函数,这个关键字“return”只是给你结果,它不会打印它返回的内容。 流动会很好:

    System.out.print("Total number of grades: " + numTotal);
    

    字符串“总成绩:”已显示,只是因为您调用了函数“System.out.print(...)”。

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-02
      • 2019-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-04
      • 2017-08-25
      • 1970-01-01
      相关资源
      最近更新 更多