Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java return语句在void函数中有什么用途_Java_Android_Return - Fatal编程技术网

Java return语句在void函数中有什么用途

Java return语句在void函数中有什么用途,java,android,return,Java,Android,Return,我是java新手,返回什么平均值?它是不是像破折号一样 public void run() { if(imageViewReused(photoToLoad)) return; Bitmap bmp=getBitmap(photoToLoad.url); memoryCache.put(photoToLoad.url, bmp); if(imageViewReuse

我是java新手,
返回什么平均值?它是不是像破折号一样

  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)
,对吗

是的,您可以像中断一样使用它。

是的,
返回
是中断您对同一块的下一次执行


有关
return

的详细信息,当函数执行到return语句,然后返回到调用代码时,函数的执行已完成。就你而言


如果
ImageViewReuseded(photoToLoad)
为true,则将不会执行
return
之后的代码块。

return语句跳过函数作用域的剩余执行

值得一读:

  • 返回
  • 中断

  • 是的,有相似之处,但也有不同之处

    • 中断
      -将停止循环并切换条件。只能用于switch和loop语句
    • return
      -将完成函数执行,但不会执行此关键字下面的语句。只能用于任何功能
    在无效函数中使用
    返回
    关键字

    如果在这样的void函数中使用
    return

    void trySomething()
    {
      Log.i("Try", "something");
    
      return;
      Log.e("Try", "something"); 
    }
    
    此函数的执行已完成,但不会执行下面的语句

    使用
    中断
    关键字

    对于任何循环语句

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

    在切换条件下使用
    中断
    ,也与循环相同。省略
    中断
    将继续切换状态。

    此处返回作为功能结束。 您可以通过将代码更改为

     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
    结束调用它时出现的方法的执行。对于void方法,它只是退出方法体。对于非void方法,它实际上返回一个值(即
    返回X
    )。只需小心使用
    try finally
    :请记住,即使在
    try
    块中返回
    ,也会执行:

    public static void foo() {
        try {
            return;
        } finally {
            System.out.println("foo");
        }
    }
    
    // run foo in main
    
    福 是了解有关
    return
    的详细信息的好参考


    它是不是像破折号一样

    从这个意义上讲,这两个语句都“结束”了一个正在运行的过程
    return
    结束一个方法,
    break
    结束一个循环。尽管如此,了解两者之间的差异以及何时应使用它们是很重要的

    如果第二个
    imageViewReused(photoToLoad)
    返回
    true
    BitmapDisplayer bd=new BitmapDisplayer(bmp,photoToLoad)
    将不会执行,对吗


    正确-如果执行该
    语句的主体,并且不会到达后续语句,则该方法将“
    返回
    ”。

    请阅读基本(且免费提供)java教程…仅是我的编辑评论,但应避免从无效方法中断和返回:它们通常是糟糕的代码设计。通常它们是可以避免的,在上面的示例中,您可以做一些类似于if(!imaveViewReused(photoload)){…}。“是的,
    return
    与java中的
    break
    相同”-这根本不是真的。它们在某种意义上是相似的,但它们绝对不一样。你可以解释一下。。。简而言之!voidwithreturn语句只是终止执行并返回给调用者的一种特殊情况,你们最好想象一下,他离开的时候可能会认为这只是一种特殊情况 foo