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。

值得阅读:

  1. return : http : //docs.oracle.com/javase/tutorial/java/javaOO/returnvalue.html
  2. 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块中returnfinally块也会被执行:

 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); } }