我正在創建一個返回變量elt的方法,如果它存在於一個數組中。如果它不存在於一個數組中,我需要返回null。如何在Java中使用for循環時實現return語句?
問題是,我正在使用if語句在for循環中檢查數組中每個項目中的變量elt。我不認爲我可以在for循環中的if語句結尾處放置返回語句,因爲每次執行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'在'for'循環。該方法將盡快完成並退出。 –
請注意,您發佈的解決方案和可接受的解決方案的不同之處在於,您的數據刪除了'data'中的所有'elt',而接受的解決方案僅刪除了第一個遇到的事件(並立即退出)。這可能是好的或壞的取決於你的方法的合同。 –
@JiriTousek,謝謝你指出這一點,你是絕對正確的!儘管如此,即使我發佈的解決方案也只是消除了第一次遇到的情況。你能給我一個關於如何去除所有事件的提示嗎?我無法弄清楚。 –