Java 为什么我能';在静态方法中,不能以这种方式返回任何内容

Java 为什么我能';在静态方法中,不能以这种方式返回任何内容,java,return,static-methods,Java,Return,Static Methods,我写了一段代码只是为了训练一点,我想知道为什么我不能使用这个符号 public static double retangleArea (double c, double d) { double area = c * d; if ( c < 0 || d < 0) { System.out.println("Error."); return; } return area; } 公共静态双重夹角区域(双c,双d){ 双面积=c*d; if(c

我写了一段代码只是为了训练一点,我想知道为什么我不能使用这个符号

public static double retangleArea (double c, double d) {
  double area = c * d;
  if ( c < 0 || d < 0) {
    System.out.println("Error.");
    return;
  }
  return area;
}
公共静态双重夹角区域(双c,双d){
双面积=c*d;
if(c<0 | | d<0){
System.out.println(“错误”);
返回;
}
返回区;
}

如果我在main()中调用这个方法,它会大叫“Error.”,并且仍然用一个负数计算(c*d),但我只想让打印显示出来。嗯,我知道如何解决这个问题,我只是想了解为什么我不能这样做,这有什么问题

只能使用
return
如果方法返回
void

则只能使用
return
如果该方法返回
void

三种方法:

  • 抛出异常,而不是将错误写入控制台。您可以在
    catch
    块中写入控制台,在那里您可以更好地处理错误

  • 将函数返回类型更改为
    Double
    (注意大写),如果不想计算值,则返回
    null

  • 使用
    java.lang.Optional
    作为返回类型

  • 在这些方法中,我更喜欢并因此推荐1.

    三种方法:

  • 抛出异常,而不是将错误写入控制台。您可以在
    catch
    块中写入控制台,在那里您可以更好地处理错误

  • 将函数返回类型更改为
    Double
    (注意大写),如果不想计算值,则返回
    null

  • 使用
    java.lang.Optional
    作为返回类型


  • 其中,我更喜欢并因此推荐1。

    您的方法是
    public static double
    这意味着您在任何情况下都必须返回double。您可以将其设置为
    公共静态void
    ,并将值传递给类的字段

    您的方法是
    publicstaticdouble
    ,这意味着您在任何情况下都必须返回double。您可以将其设置为
    公共静态void
    ,并将值传递给类的字段

    您将方法声明为返回
    double
    ,因此必须返回
    double
    。如果您只希望有时返回值,请查看。或者,您可以验证输入并在c或d<0时引发异常。您将方法声明为返回
    double
    ,因此必须返回
    double
    。如果您只想有时返回一个值,请看一看。或者,您可以验证您的输入,并在c或d小于0时引发异常。因此,基本上,当我声明double方法时,我必须返回双值,如果语句不违反我的条件,我可以引发异常,以便不更改我的方法类型。是吗?没错。使用异常机制来处理意外情况。因此,基本上,当我声明一个double方法时,我有义务返回双值,如果该语句没有违反我的条件,我可以抛出异常,以便不更改我的方法类型。是吗?没错。使用异常机制处理意外情况。