我試圖通過使用 for 回圈找到任何陣列的總和,但 i 部分最終成為無法訪問的死代碼。我不明白為什么?
public static int sum(int[] data) {
int sum = 0;
int i;
for (i = 0; i < data.length; i ) { //the i is the deadcode
sum = data [i];
return sum;
}
return 0; //to be completed
}
uj5u.com熱心網友回復:
這i 是死代碼,因為它永遠無法到達。它永遠無法到達,因為您在回圈中有一個 return 陳述句。因此,它永遠不會執行 for 回圈的增量部分。移動return sum;回圈外部(替換return 0;)。
public static int sum(int[] data) {
int sum = 0;
for (int i = 0; i < data.length; i ) {
sum = data [i];
}
return sum;
}
uj5u.com熱心網友回復:
您總是在第一次迭代后回傳,因此除了第一個元素之外,您不會對任何內容進行求和。你應該這樣做:
public static int sum(int[] data) {
int sum = 0;
for (int i = 0; i < data.length; i )
{
sum = data [i];
}
return sum;
}
public static void main(String[] args)
{
int data[] = {1,2,3,4,5};
int sum = sum(data);
System.out.println(sum);
}
}
uj5u.com熱心網友回復:
不要在 for 回圈中回傳一些東西,因為 return 結束了整個函式的回圈。
相反,請執行以下操作:
public static int sum(int[] data) {
int sum = 0;
for (int i = 0; i < data.length; i ) {
sum = data[i];
}
return sum;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/442927.html
上一篇:計算資料框中的夜晚長度
