【问题标题】:Why won't this code print? What is the error?为什么不打印此代码?错误是什么?
【发布时间】:2014-11-23 12:03:41
【问题描述】:

为什么不打印此代码?我正在尝试编写一个名为 min 的方法,它接受 3 个参数并返回三个值中的最小值。

public class Practice {
    public static void main(String[] args){
        min(3, -2, 7);
        min(19, 27, 6);

    }

    public static void min(int number1, int number2, int number3){
        return Math.min(number1, Math.min(number2, number3));

        System.out.println();
    }
}

【问题讨论】:

  • 什么错误? 阅读它。 想想,如果提出问题,说出它是什么
  • 对不起,我是初学者,刚开始学习一周。我真的想不通,但答案真的很有帮助!
  • 确保在问题中包含错误和/或有问题的症状。不要让人们猜测“错误是什么”,因为编译器 它是什么。 (在说明错误之后,必须更容易解释 为什么 发生错误 - 搜索错误消息也会找到 many similar questions。)

标签: java compiler-errors return


【解决方案1】:
public static void min(int number1, int number2, int number3){
    return Math.min(number1, Math.min(number2, number3));

    System.out.println(); // The statement is unreachable (compilation error here). Next, you are not printing anything (which doesn't matter because it will not get executed)
}

解决方案:在main() 方法中打印答案,如下所示:System.out.println(min(3, -2, 7)); 并从min() 返回int

【讨论】:

  • 其实代码甚至没有编译,因为unreachable语句,所以我不确定Next, you are not printing anything部分是否正确
  • 第一个答案应该是your code not compile at least.
  • 编辑了答案@BackSlash。
【解决方案2】:

这甚至不会编译为行

System.out.println(); is after `return` statement,hence it is unreachable

只需打印您使用此返回的值:-

public class Practice {
    public static void main(String[] args){
       System.out.println( min(3, -2, 7));
       System.out.println(min(19, 27, 6));

    }

    public static int min(int number1, int number2, int number3){
        return Math.min(number1, Math.min(number2, number3));


    }
}

【讨论】:

  • 谢谢!现在可以了。我是java的初学者,所以你的回答真的很有帮助!
  • min() 应该返回 int :P
  • @TheLostMind 是的..你知道我没有在 IDE 上测试它:p :)
  • @flyingseacows 没问题。每个人都是初学者..快乐学习
【解决方案3】:

您的代码甚至无法编译

public static void min(int number1, int number2, int number3){ // return type is void
    return Math.min(number1, Math.min(number2, number3)); // and you return 

至少如果您的方法的返回类型为 as 时,这不是有效代码

 public static double min(int number1, int number2, int number3){ 
    return Math.min(number1, Math.min(number2, number3)); // method will exit from here
    // and return the value to caller
    System.out.println(); // never reach this line
 }

【讨论】:

  • 哦!谢谢,我没有注意到我已经放空了。谢谢!
【解决方案4】:

您不能在return 语句之后添加任何语句。这是Java中的规则。 return 语句应该是任何方法的最后一条语句。因此首先从min() 中删除System.out.println();

根据您的问题,您正在调用 min() 并且不要将方法的结果发送到输出流以在控制台上打印。这就是为什么你看不到结果。

您必须在System.out.println() 中调用min()。然后你可以看到结果。您还必须将函数min() 的返回类型转换为int

祝你好运!!!!!!

【讨论】:

  • 谢谢。我对如何使用 return 语句有点困惑,但这有助于清除它。
猜你喜欢
  • 1970-01-01
  • 2019-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-07
  • 1970-01-01
  • 2017-02-08
  • 1970-01-01
相关资源
最近更新 更多