【问题标题】:Java Return is Returning BlankJava 返回返回空白
【发布时间】:2018-12-23 15:04:28
【问题描述】:

我正在尝试创建一个返回两个值 x 和 y 之和的 java 方法。目前,当我运行代码时,输​​出没有返回任何内容。有什么方法可以在不修改“getSum(x,y);”的情况下获得返回总和的值在第 6 行同时使用返回方法???

public class ZawMethods2
{
  public static void main(String[] args)
  {
    int x = 7, y = 45; 
    getSum(x,y);
  }
  public static int getSum(int x, int y){
    int sum = x+y; 
    return (sum); 
  }
}

提前谢谢大家!!!我仍处于编码的初级阶段,因此感谢所有帮助。

【问题讨论】:

  • 你怎么知道它是空白的?您没有任何东西可以存储返回值,也没有任何打印行。
  • 什么意思:返回空白?因为它不打印任何东西?只需添加打印语句
  • 你是在问为什么这个程序不产生任何输出?
  • 是的,程序可以编译,但是没有输出任何东西
  • @Yunnosch 根据 OP 的回复,这不是他的意思。既然他说,我引用:“Yunnosch 实际上我没有修改对方法的调用(第 6 行),只是在 getSum() 方法中添加了一个打印语句,该语句有效。感谢您的帮助”-> 这表明这是对您帐户的(错误)假设。

标签: java methods return


【解决方案1】:

试试这个:

public class ZawMethods2
{
    public static void main(String[] args)
    {
        int x = 7, y = 45; 
        System.out.print(getSum(x,y));
    }
    public static int getSum(int x, int y)
    {
        int sum = x+y; 
        return (sum); 
    }
}

这段代码很容易解决你的问题。

【讨论】:

    【解决方案2】:

    您应该将结果存储在变量中或显示结果。

    int c = getSum(x,y);
    

    System.out.println("The result of the two numbers are " +getSum(x,y);
    

    【讨论】:

      【解决方案3】:
      public class ZawMethods2
      {
        public static void main(String[] args)
        {
          int x = 7, y = 45; 
          System.out.print(getSum(x,y));
        }
        public static int getSum(int x, int y){
          //no need to create temprory varibale 
          return x+y; 
        }
      }
      

      【讨论】:

      • 请补充说明。
      • 如果你创建一个临时变量,它将在堆中获得额外的内存,如果我们不使用该变量进行任何引用,我们不应该这样做
      【解决方案4】:

      实际上,您正在编译一个没有任何输出的程序。你必须使用类似的东西

      System.out.println(getSum(x, y));

      否则你不会得到任何输出。

      如果你修改主方法,如:

          public static void main(String[] args)
          {
              int x = 7, y = 45; 
              int sum = getSum(x,y);
              System.out.println(sum);
          }
      

      你会得到输出:52。 在这种情况下,您将保存返回的 Integer 并在控制台打印一个新行。 如果你想添加一些词,你可以修改main like:

      public static void main(String[] args)
      {
          int x = 7, y = 45; 
          int sum = getSum(x,y);
          System.out.println("The result is" + sum);
      }
      

      【讨论】:

      • @Yunnosch 您注意到 getSum 方法有什么变化吗?谢谢。
      • 我注意到(现在由 OP 进一步澄清)您完全更改了不应更改的部分。之前我注意到您对什么是允许的,什么是不允许的做出了假设,并试图让您了解问题中可能被解释为明确禁止您所做的事情的部分。
      【解决方案5】:

      只需在 getSum 方法中打印,然后返回:

      public static int getSum(int x, int y){
          int sum = x+y; 
          System.out.println(sum);
          return sum; 
      }
      

      正如@Stultuske 在 cmets 中提到的那样。如果您只想打印总和,而永远得到。然后只需删除返回类型并以不同的方式命名方法以进行说明:

      public static void printSum(int x, int y){
          System.out.println(x + y);
      }
      

      您甚至可能想引入一种全新的方法。将旧的getSum 全部留在自己身上。然后新方法委托并打印返回的结果:

      public static void printSum(int x, int y){
          System.out.println(getSum(x, y));
      }
      

      【讨论】:

      • 那为什么不去掉return(type)呢?
      • @Stultuske 这可能不是getSum 的唯一用途,它可能只是一个简化的示例。但是是的,如果它唯一的情况,那么删除可能是值得的。
      • 这是重点。如果有多种用途,谁说 OP 希望为所有用途打印输出?
      • @Stultuske 另一个好点。那么可能想介绍两种方法? 1个用于获取,另一个用于打印。后者调用前者。这可能是最干净的方式
      【解决方案6】:

      对不起,我认为您不允许修改getSum 方法。只需将System.out.println(sum); 添加到getSum 方法即可。

      【讨论】:

      • 是的,有效!谢谢!只有一个问题:我的代码的问题是因为“返回”没有输出/打印任何我们必须始终包含打印语句才能获得输出的东西?
      • 是的,return 与输出无关。
      • @CarolineZaw java 永远不会在控制台上打印任何东西,除非你告诉它,使用System.out.println 声明
      猜你喜欢
      • 1970-01-01
      • 2011-05-27
      • 2012-09-06
      • 2018-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多