void函数中return语句的用法是什么
我是java新手, return;
什么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)
将不会被执行,对吧?
最好先学习语言基础知识,然后再学习API。
值得阅读:
-
return
: http : //docs.oracle.com/javase/tutorial/java/javaOO/returnvalue.html -
break
: http : //docs.oracle.com/javase/tutorial/java/nutsandbolts/branch.html
是的,有相似之处,但也存在差异
-
break
– 将停止循环并切换条件。 只能用于switch和loop语句 -
return
– 将完成函数执行,但不会执行此关键字的下面的语句。 只能用于任何function。
在void函数中 使用 return
关键字
如果你在这样的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
也与loop相同。 省略break
将继续切换条件。
是的,你可以像rest一样使用它。
return
结束执行调用时出现的方法。 对于void方法,它只是退出方法体。 对于非void方法,它实际上返回一个值(即return X
)。 小心try-finally
:记住即使你在try
块中return
, finally
块也会被执行:
public static void foo() { try { return; } finally { System.out.println("foo"); } } // run foo in main
FOO
这是学习更多关于return
一个很好的参考。
是
break
吗?
好吧,从两个语句’结束’一个正在运行的过程; return
结束方法, break
结束循环。 然而,重要的是要知道两者之间的差异以及何时应该使用它们。
如果第二个
imageViewReused(photoToLoad)
返回true
,则BitmapDisplayer bd=new BitmapDisplayer(bmp, photoToLoad)
将不会被执行,对吧?
正确 – if
执行if
-statement的主体并且不会达到后续语句, if
该方法将“ return
”。
是的, return
是打破你下一次执行相同的块。
有关return
更多信息, 请查看此内容
函数的执行完成,当涉及到return语句,然后它返回到它的调用代码。 在你的情况下,
如果imageViewReused(photoToLoad)
为true,则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); } }