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

时间:2015-10-20 14:08:41

标签: java arrays loops return

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

问题是,我正在使用for循环中的if语句检查数组中每个项目中的变量elt。我不认为我可以在for循环中的if语句的末尾放置一个return语句,因为每次执行if语句时,潜在的返回值都会不同。我认为每次循环for循环时,这将产生一个新的返回值。为了解决这个问题,我创建了一个名为exists的布尔临时变量。如果为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;
    }

我的问题是,有没有办法在不使用临时变量的情况下将return语句塞进方法中?

2 个答案:

答案 0 :(得分:3)

无需使用一个额外的变量。您可以直接从for循环返回。而不是写exist = truereturn elt并在最后 而不是

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

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

答案 1 :(得分:3)

您几乎可以在任何地方放置一个返回语句。

要回答你的问题,你可以在内部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;
}