[英]Accessing array in a return method
晚上好,人們,
我有一個創建,填充並返回數組的函數調用方法,如下所示:
public double[] getTotalDistances(){
double[] distance;
distance = new double[3];
for(Activity r: diary ){
if(r instanceof Run){
distance[0] += r.getDistance();
}
}
return distance;
}
而且我似乎找不到一種方法來訪問此返回的數組以在main方法中將其打印出來,我已經嘗試過:(其中m是我實例化的對象)
for(int i = 0; i< m.getTotalDistances().length; i++){
System.out.println(m.getTotalDistances().distance[i]);
}
這表示找不到可變距離。
我知道我可以做類似的事情:
for(double i: m.getTotalDistances()){
System.out.println(i);
}
這將打印出返回的數組,但是,我想知道如何以“經典”方式進行操作。我知道這必須是非常新手,但我找不到答案。 任何幫助將不勝感激。
在迭代之前使用變量存儲它。
double[] distance = m.getTotalDistances();
for(int i = 0; i < distance.length; i++){
System.out.println(distance[i]);
}
您的方法將在循環內反復調用getTotalDistances()
方法。 您只需要使用一次即可。
你得到這個錯誤
這表示找不到可變距離。
因為可變distance
僅在您的方法getTotalDistances()
的范圍內是已知的,因此您不能在該范圍之外使用它(也沒有任何意義)。
應該是m.getTotalDistances()[i]
而不是m.getTotalDistances().distance[i]
書寫方式, distance
未定義。 如果要引用返回值,則需要創建一個指針作為返回值。
double[] distance = getTotalDistances();
for(int i = 0; i < distance.length; i++) {
System.out.println(distance[i]);
}
同樣,在編寫時,除第一個值以外的任何值都將始終為0,並且累加器更有意義。
需要注意的另一件事是,正如所寫的那樣, getTotalDistances()
將在for
循環的每次迭代中運行兩次; 一次用於條件,第二次用於println()
。 如果要將此概念擴展到更大的用例,那么對性能的影響將是巨大的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.