return;
函数中的 void
。它实际上是做什么的?
void function() {
if(x==NULL) {
return;
}
else{
/////
}
}
答案 0 :(得分:7)
在您显示的示例中,return
不执行任何操作。但是,请考虑以下示例:
void do_the_thing()
{
if(it's already done)
return;
do the thing;
}
如果做某件事很昂贵,或者如果已经做过而导致问题,则需要这样的逻辑。而且,除了“费用”外,在任何给定调用期间,函数可能会选择执行比其全部动作要少的原因。
换句话说,从void函数返回,尽管它不会返回值,但至少将阻止该函数执行其以后的任何工作。
(现在,话虽如此,在函数中间使用return
并不是实现此功能的唯一方法。代替if
语句使函数提前返回,您可以使用if
语句或else
子句使该函数仅在需要时执行操作。回到我的示例,您还可以编写
void do_the_thing()
{
if( ! already done) {
do the thing;
}
}
这引发了一场永恒的风格争论,即在一个函数中散布多个return
语句是好是坏,或者最后总是总是一个。)< / p>
答案 1 :(得分:2)
遇到return
语句会使函数立即返回,而不是继续运行其后的任何代码。
如果函数返回一个值,则return
语句必须指定一个要返回的值。对于具有void
返回类型的函数,不需要任何值。
答案 2 :(得分:2)
通常,这样做是为了缩短执行时间,这意味着将不执行该函数中的其余代码(将不评估else语句或该函数中的其他任何内容。
这从性能方面有帮助,但从防御性编程的角度来看也有帮助,因为您可以精确地设置执行返回的位置,而不是假定即使不需要,执行也可以正确到达函数的结尾(代码可以被意外添加或更改并影响预期的行为)
答案 3 :(得分:1)
这将导致该函数(而不是该程序,只是该函数)终止而无须做任何进一步的事情。
答案 4 :(得分:1)
您使用return
来停止功能而不运行所有代码。
使用您的示例:
void function(){
if(x==NULL){
return;
}
else{
/////
}
... some other code here ...
}
如果x
为NULL
,则该函数正在停止且未运行... some other code here ...
。
如果x
是not NULL
,则程序将执行else
语句以及... some other code here ...
上的内容
答案 5 :(得分:1)
在用C ++编程的过程中,我了解到' void函数'没有返回类型。 return-type 用于声明函数,例如int main()
,其中类型int
是返回类型,该函数必须返回一个整数值以表示成功终止。但是,当我们使用void
函数时,情况会发生变化。 返回类型,void
;顾名思义,这意味着它不会返回值,因为它是空的,所以不会返回任何东西。因此,如果尝试从声明为void的方法( function )返回值,则会出现编译器错误。
但是如果您建议的话:
void function() {
if(x==NULL) {
return;
}
else{
/////
}
}
上面的代码还将再次出现错误,因为void方法不是为返回值而构建的。如果该函数仅是返回类型int
,则此retrun命令将起作用,但是return语句不能在void函数中使用,因为它会产生错误。
希望对您有所帮助!
要进一步阅读,您可以访问: http://www.cs.fsu.edu/~cop3014p/lectures/ch7/index.html
Return statement in void method
https://docs.oracle.com/javase/tutorial/java/javaOO/returnvalue.html