在java中循环返回类型

时间:2014-02-28 11:32:32

标签: java android oop logic

任何人都可以解释一下这段代码是如何运作的。

  // Method returns null if bitmap not available 
    public Bitmap getBitMap(long id) {

        for ( Bitmap item : myBitmaps.keySet() ) {
            if ( item != null) {
                if ( item.getId() == id ) {
                    return item;
                }

            }
        }

        return null;

如何在function.sorry中使用两个返回(包括一个if if block),我是java的新手。

5 个答案:

答案 0 :(得分:6)

简单。

如果满足两个嵌套条件,则第一个return语句仅返回item

一旦你的循环结束(也就是两个嵌套条件满足),第二个return语句会触发并返回null

简而言之,如果您的myBitmaps arrayCollection包含的Bitmap不是null且其id等于给定{ {1}}对于该方法,返回id实例。

否则,返回Bitmap

fge 所述,方法必须满足所有可能的返回路径(除特殊条件外)。

如果未在循环外返回null,则代码将无法编译。

这种情况会发生,因为如果你的条件没有得到满足,你的循环会终止而不返回任何东西,你的方法也是如此。

答案 1 :(得分:1)

当调用return语句时,函数退出。您可以在不同的地方有多个return语句,因为您可能希望根据函数中发生的情况返回不同的值。

答案 2 :(得分:1)

每次只有一次返回。当return item执行时,它实际上将控件返回到调用此方法的语句行。在这种情况下,return null将无法执行。当For循环执行完整且当时没有任何事情return null语句将被执行。

因此,无论方法中是否有多个return语句,一次只有一个return语句会被执行。

答案 3 :(得分:0)

基本上有3个步骤:

  1. 循环Bitmap
  2. 中的每个myBitmaps礼物
  3. 如果位图为“有效”(表示不是null),则继续。否则,让我们迭代到下一个Bitmap
  4. 如果ID是您正在查看的ID,请返回Bitmap
  5. 所以它的作用是:获取具有指定id的Bitmap(如果存在)。

答案 4 :(得分:-1)

if条件应该是这样的:

 if ( item != null && item.getId() == id){
    return item;
 }