如果变量elt存在于数组中,则创建一个返回变量elt的方法。如果数组中不存在它,则需要返回null。
问题是,我正在使用for -循环中的if语句检查数组中每个项中的变量elt。我不认为我可以在for-循环中if语句的末尾放一个返回语句,因为每次它执行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变量的情况下将返回语句封装在方法中?
发布于 2015-10-20 06:17:36
您几乎可以在任何地方放置返回语句。
要回答您的问题,您可以在内部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;
}
发布于 2015-10-20 06:14:19
没有必要使用一个额外的变量。您可以直接从for循环返回。而不是写exist = true
,写return elt
,最后写
if (exist = true)
return elt;
else
return null;
只需编写return null
,以便如果elt
不存在,它将返回null。
https://stackoverflow.com/questions/33238974
复制相似问题