return;
是什么意思?是不是像break
?
public void run() {
if(imageViewReused(photoToLoad))
return;
Bitmap bmp=getBitmap(photoToLoad.url);
memoryCache.put(photoToLoad.url, bmp);
if(imageViewReused(photoToLoad))
return;
BitmapDisplayer bd=new BitmapDisplayer(bmp, photoToLoad);
Activity a=(Activity)photoToLoad.imageView.getContext();
a.runOnUiThread(bd);
}
如果第二个
imageViewReused(photoToLoad)
返回true,BitmapDisplayer bd=new BitmapDisplayer(bmp, photoToLoad)
就不会被执行,对吧?
是的,有相似之处,但也有不同之处
break
- 将停止循环并切换条件。只能用于 switch 和循环语句return
- 将完成函数执行,但该关键字下面的语句将不会被执行。只能用于任何功能。
return
void 函数中关键字的使用
如果你在像这样的 void 函数中使用
return
void trySomething()
{
Log.i("Try", "something");
return;
Log.e("Try", "something");
}
该函数执行完毕,但下面的语句不会被执行。
break
关键字的用法
对于任何循环语句
void tryLoop()
{
while(true)
{
Log.d("Loop", "Spamming! Yeah!");
break;
}
}
循环将停止并继续该函数的剩余语句
用于开关条件
void trySwitch()
{
int choice = 1;
switch(choice)
{
case 0:
Log.d("Choice", "is 0");
break;
case 1:
Log.d("Choice", "is 1");
case 2:
Log.d("Choice", "is 2");
}
}
在开关条件下使用
break
也与循环相同。省略 break
将继续切换条件。
是的,你可以像休息一样使用它。
return
结束调用它时出现的方法的执行。对于 void 方法,它只是退出方法体。对于非 void 方法,它实际上返回一个值(即return X
)。请小心try-finally
:请记住,即使您在finally
块中
return
,try
块也会被执行:
public static void foo() {
try {
return;
} finally {
System.out.println("foo");
}
}
// run foo in main
富
这是了解更多关于
return
的很好的参考。
是不是像
?break
从某种意义上说,这两个语句都“结束”了一个正在运行的进程;
return
结束方法,break
结束循环。尽管如此,了解两者之间的差异以及何时应使用它们非常重要。
如果第二个
返回imageViewReused(photoToLoad)
,true
就不会被执行,对吧?BitmapDisplayer bd=new BitmapDisplayer(bmp, photoToLoad)
正确 - 如果执行该
return
语句的主体并且不会到达后续语句,则该方法将“if
”。
函数执行到return语句时就结束了,然后返回到调用代码。就你而言,
如果
imageViewReused(photoToLoad)
为true,那么return
之后的代码块将不会被执行。
这里的 return 充当函数的结束。 您可以通过更改代码来避免它,
public void run() {
if(!imageViewReused(photoToLoad))
{
Bitmap bmp=getBitmap(photoToLoad.url);
memoryCache.put(photoToLoad.url, bmp);
if(!imageViewReused(photoToLoad))
{
BitmapDisplayer bd=new BitmapDisplayer(bmp, photoToLoad);
Activity a=(Activity)photoToLoad.imageView.getContext();
a.runOnUiThread(bd);
}
}
Return 语句会跳过函数作用域的剩余执行。
值得一读: