我正在创建一个方法,如果它存在于数组中,则返回变量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语句塞进方法中?
答案 0 :(得分:3)
无需使用一个额外的变量。您可以直接从for循环返回。而不是写exist = true
写return 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;
}