缺少return语句的地方? [英] Missing a return statement somewhere?

查看:389
本文介绍了缺少return语句的地方?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我工作的一个基本的Java分配学校。这段代码涉及到搜索中一个ArrayList的特定部分号码。当我尝试编译时,IDE说我有一个丢失return语句。不过,我看不出它在哪里。我需要一个return语句索引的增量以下?如果是这样,则返回空变得无法访问。谢谢你们非常感谢。

 公共InventoryItem findInventoryItem(INT searchPartNumber)
{
    INT索引= 0;
    布尔检索=真实的;
    而(指数< items.size()及和放大器;搜索){
        InventoryItem inventoryItem = items.get(指数);
        INT fetchedPartNumber = inventoryItem.getPartNumber();
        如果(fetchedPartNumber ==(searchPartNumber)){
            搜索= FALSE;
            返回inventoryItem;
        }
        其他{
            指数++;
        }        如果(搜索){
            返回null;
        }    }
}


解决方案

您code有几个问题:


  1. 您比较列表第一项不匹配后 - 你会停止比较,因为搜索是真实的,你将返回null

  2. 在空单的情况下,你需要返回null太

这里是固定的版本:

 公共InventoryItem findInventoryItem(INT searchPartNumber){
    对于(InventoryItem inventoryItem:项目)
        如果(inventoryItem.getPartNumber()== searchPartNumber)
            返回inventoryItem;
    返回null;
}

I'm working on a basic Java assignment for school. This snippet involves searching for a specific part number in an ArrayList. When I try to compile, the IDE says I have a missing return statement. However, I can't see where it is. Do I need a return statement following the increment of the index? If so, then the return null becomes unreachable. Thank you guys very much.

        public InventoryItem findInventoryItem(int searchPartNumber)
{
    int index = 0;
    boolean searching = true;
    while (index < items.size() && searching){
        InventoryItem inventoryItem = items.get(index);
        int fetchedPartNumber = inventoryItem.getPartNumber();
        if(fetchedPartNumber == (searchPartNumber)){
            searching = false;
            return inventoryItem;
        }
        else{
            index++;
        }

        if(searching){
            return null;
        }

    }
}

解决方案

your code has several problems:

  1. after you compared first item in list and it does not match - you will stop comparing, as searching is true and you will return null
  2. in case of empty list you need to return null too

here is the fixed version:

public InventoryItem findInventoryItem(int searchPartNumber) {
    for (InventoryItem inventoryItem : items)
        if (inventoryItem.getPartNumber() == searchPartNumber)
            return inventoryItem;
    return null;
}

这篇关于缺少return语句的地方?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆