JAVA中why无返回值_关于java:如果你没有返回值,为什么有一个return关键字?

当我正在阅读我的AP java书时,我偶然发现了这一段对我来说毫无意义:

... getBalance方法只返回当前余额。 return语句获取变量的值并立即退出该方法。 返回值成为方法调用表达式的值。 return语句的语法是:

return expression;

要么

return; // Exits the method without sending back a value

如果你想让它无效,为什么你想要一个return语句并"退出方法而不发送一个值"?

***注意:如果这可能过于主观,请注意。 我只是无法理解这一点,本书没有解释它。

你什么意思? 如果方法包含诸如return;之类的语句,则该方法必须已为void。 只有void方法(和构造函数)才允许不带任何参数的return语句。

@arshajii我认为如果一个方法在所有void之后都有"返回",则该方法不能为空,这意味着该方法不返回任何值。

在void方法中使用无参数return语句时,不返回任何内容,只需结束方法即可。

return关键字不需要在最后。例如:

public static void print42(int[] numbers) {

for(int i=0; i

if (numbers[i] == 42) {

System.out.println("has 42");

return;

}

}

System.out.println("no 42");

}

它不能只使用break,因为它会打印两个字符串。

这是一种主观的。我老了,我相信所有方法/功能都有一个进入和退出点,但......

如果你有一个带有void返回类型的方法,并且如果你已经达到逻辑中的一个点,这将指示不应该进行进一步的处理,你可以调用return;强制执行返回到调用方法at这一点,前面是该方法的任何进一步执行。

它与在具有预期返回类型(无论x是什么)的方法体中间使用类似return x;的东西相同

这有点像使用break过早地突破loop,除非你在执行结束之前突破了方法。

在某些情况下,一旦您在void函数中验证了某些内容,立即退出它是有意义的。例如:

public static void checkIfStringInList(List searchList, String findString) {

for( String thisSearchString : searchList ) {

if( findString.equals(thisSearchString) )

return;

}

throw new Exception("String" + findString +" not found in list");

}

在那种情况下,你通常只返回一个布尔值...

如果您的方法具有void返回类型,则return语句是可选的。例如,如果您想在某些情况下停止执行,则可能还想使用它。

如果返回类型不是void,那么使用不带参数的return;将给出编译错误。

声明为void的方法可以使用return;退出,这只是提前终止的快捷方式。具有非void返回类型的方法必须返回正确类型的值,如果具有非void返回类型,则不能使方法返回"nothing"。

在java中,如果方法在其签名中具有返回类型,则必须在退出方法之前返回该类型的对象或null。

例如

public A foo(boolean val){

A obj=null;

if (val){

obj=new A();

obj.setSomeAttribute();

}

return obj;

}

如果只是编码"return",则无法编译源代码。

返回类型,不返回类。 这是一个重要的区别。 此外,您可以合法地返回null代替对象。

我明白了这一点。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值