【问题标题】:How to exit from loop when find matched parameter in java [closed]在java中找到匹配的参数时如何退出循环[关闭]
【发布时间】:2014-02-25 06:34:31
【问题描述】:

假设我有一个包含 5 个数据的 ArrayList,如下所示:

testarrar=[optio1, option2, option3, realdata, option5];

我想遍历上面的列表,如果我得到 realdata,然后收集相应的数据,但在我的情况下,代码在 realdata 之后进一步执行并返回 null。

已编辑:

我的方法中的意图如果找到 realdata 然后我想返回数据 否则我不想从这个方法返回任何值。但就我而言 如果未找到数据,则至少为空。所以,如果是真实数据,我将尝试返回值 找到并退出。但我的函数结束了 testarrar。如果数据有,则仅调用此函数。

这是我的代码:

private Object getData() {
          if (testarrar.contains("realdata"))
        {
            if (obj != null) {
                //do something and get data
                return b.getValue(data);// I want to exit when matched parameter return this value
            }

        } 

        return null; // I am getting this
    }

如果 realdata 在 last 那么它可以工作,但是除了 last 之外的任何位置都返回 null,因为它假定 realdata 在最后。如何解决这个问题,如果我有任何位置 realdata。

【问题讨论】:

  • 哪个循环?您的代码中没有循环。
  • 如果使用return,则loop会在找到记录时终止!
  • 好的,我没有循环,如何退出这个携带各自的数据。顺便说一句,为什么从这个方法返回 null。
  • 你的意思是:虽然你的数组包含数据,但你总是得到空值?
  • @user2332049 请贴出完整代码

标签: java arraylist


【解决方案1】:

您可以像这样简单地使用“break”退出循环:

for(int i=0;i<testarrar.length;i++){
 if(testarrar.get(i)=="realdata"){
 //do your stuff;
 break;
 }
}

如果要返回数据并退出循环,使用return,如下:

for(int i=0;i<testarrar.length;i++){
 if(testarrar.get(i)=="realdata"){
 //do your stuff;
 return data;
 }
}

return 将自动退出循环并将数据发送回函数调用。

在你的情况下,删除

return null;

声明并检查您是否仍然为空。 导致价值

b.getValue(data); 您返回的可能为空。

【讨论】:

  • 这行不通。 This method must return a result of type Object。但没有得到返回值。如果 realdata 发生,我将获得价值,但我的最后一个选项 5 执行,因此它返回 null。
  • 您可以检查代码中返回值的类型,如果它是一个对象,您可以继续,如果它为 null,您可以忽略。如果您确实需要返回某种类型的对象,则不要返回 null,而是返回您想要返回的任何类型的对象。 Object obj = new Object(); return obj
猜你喜欢
  • 1970-01-01
  • 2016-02-17
  • 2023-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-18
  • 2020-09-24
  • 2015-01-18
相关资源
最近更新 更多