当前位置: 首页 > 知识库问答 >
问题:

在Java中使用for循环时,如何实现return语句?

卢健
2023-03-14

我正在创建一个方法,如果变量elt存在于数组中,它将返回该变量。如果它不存在于数组中,我需要返回null。

问题是,我正在使用for循环中的if语句检查数组中每个项中的变量elt。我不认为我可以在for循环的if语句末尾放一个return语句,因为每次它执行if语句时,潜在的返回值都会不同。我认为这将在每次循环for循环时产生一个新的返回值。为了解决这个问题,我创建了一个名为exist的布尔临时变量。如果为true,该方法将返回变量elt。如果为false,则返回null。下面是我正在使用的代码。

public T remove(T elt) {
        boolean exist;

        for (int i=0; i<data.length; i++) {
            if (data[i] == elt) {
                data[i] = null;
                size--;
                exist = true;
                System.out.println(exist);

                for (++i; i < data.length; i++) {
                    data[i-1] = data[i];
                }
            }
        }
        if (exist = true)
            return elt;
        else
            return null;
    }

我的问题是,有没有一种方法可以在不使用temp变量的情况下将return语句塞进方法中?

共有2个答案

汪鸿波
2023-03-14

不需要使用一个额外的变量。您可以直接从for循环返回。而不是写存在=true返回elt并在末尾代替

if (exist = true)
            return elt;
        else
            return null;

只需编写返回null,这样如果elt不存在,它将返回null。

通奕
2023-03-14

你几乎可以在任何地方写回执。

要回答您的问题,您可以在内部for循环后加上一个回车符,如下所示:

public T remove(T elt) {

    for (int i=0; i<data.length; i++) {
        if (data[i] == elt) {
            data[i] = null;
            size--;
            System.out.println(exist);

            for (++i; i < data.length; i++) {
                data[i-1] = data[i];
            }

            return elt;
        }
    }

    return null;
}
 类似资料:
  • 问题内容: 因此,我正在为不和谐而开发一个聊天机器人,现在正在开发一个可以用作待办事项列表的功能。我有一个命令可以将任务添加到列表中,并将它们存储在字典中。但是,我的问题是以更易读的格式返回列表(参见图片)。 任务存储在一个称为中。但是,为了使bot实际发送消息,我需要使用一条语句,否则它将仅将其打印到控制台而不是实际的聊天记录(参见图片)。 这是我尝试解决的方法,但是由于我使用了for循环,因此

  • 本文向大家介绍Java中break、continue、return在for循环中的使用,包括了Java中break、continue、return在for循环中的使用的使用技巧和注意事项,需要的朋友参考一下 引言:在使用循环的时候,循环里面带有break、continue、return的时候经常弄混,今天特意整理了下,以待后用...  打印结果: 打印结果: 打印结果: 内层for循环结束… 打印

  • 我得到的错误是“缺少return语句”,代码如下: 有人能帮帮我吗?多谢.

  • 我有一个380行20列的表格。我想从该表中删除符合特定条件的行。 为了澄清问题,假设我有以下列表: 我想删除在列表中找到姓名的所有人员的数据。 例如,假设我的数据如下所示: 我想删除、和的数据。所以输出应该是: 我的代码正在运行,但数据没有从我的原始数据中删除。当我打开新的测试.txt文件时,我可以看到数据没有被删除。 我可以肯定错误在< code > if data[row][0]= =(I f

  • 问题内容: 我有一个二维布尔数组’poorSignal’,需要编写一个返回网格的方法,如果数组上的某个点为true,则显示X,如果为false,则显示O。这是我的代码: 当我编译时,它在方法的最后一行给出了“丢失的返回语句”。我也不确定在打印数组时’return“ \ n”是否可以添加新行。 这是一个分配问题,所以我不能直接打印它,也不能仅打印布尔值-它必须是产生网格的方法。 问题答案: 编译器无

  • 问题:我能否使用Java流API(即一行)实现方法。需要变量来定义字符串的长度;我尝试为每个循环,但它不工作。我需要一个循环的范围。 我的尝试: