我很想知道这段代码之间有什么区别:
if(some condition) {some code} else {return;}
和这段代码:
if(some condition) {some code}
两个if只有一个没有else而另一个没有else {return;} 我很困惑,因为这回归;没有返回任何值,它只是留下这段代码还是做其他事情?
答案 0 :(得分:3)
您的2 if
语句之间的主要区别如下
在第一种情况下,即如果if
else
子句表示return
,如果代码执行进入else
部分,那么它将终止于return
并返回调用者 - 这可能是另一种方法或函数。
在第二种情况下,即if
没有else
的情况,无论if
条件是评估为true
还是false
,代码执行将继续到方法或程序的末尾,然后返回给调用者 - 除非你在if
条件的...some code
部分中有一个返回,在这种情况下代码执行将终止并返回给来电者。
如果我们采取更广泛的例子来强调差异。
// beginning of code block
{
if(some condition)
{
// some code
}
else
{
return;
}
// ... some more code
} // end of the method / code block
在这种情况下,如果... some more code will never be executed if the
为false,则为condition evaluates to
。
// beginning of code block
{
if(some condition)
{
// some code
}
// ... some more code
} // end of the method / code block
在这种情况下,... some more code will be always executed regardless of whether the
如果condition evaluates to
为真or
false ... unless you have a return within the
if条件,在这种情况下,如前面在案例1中所述,代码执行将返回到调用方法/功能。
答案 1 :(得分:0)
其他部分是差异。根据你的设置判断,我会说第一个基本上是说条件为TRUE-执行代码ELSE返回FALSE。第二个是说条件是否为TRUE执行代码。这意味着如果条件为FALSE,则不会返回FALSE值。