這是來自過去的論文的問題。我被要求創建一個靜態方法arrayMin
來找到數組arr
中的最小值。Java,查找數組中的最小數字
我必須使用while循環,並且在每次迭代時,變量min
將返回第一個i
元素中的最小數字。
有沒有辦法做到這一點,而無需調用其他方法/ for循環,並嚴格使用while循環,因爲問題只值4%(包括編寫循環不變量和javadoc)。不知道我是否過於複雜的問題。
public class Revision {
public static int arr[] = new int[] { 5, 8, 4, 3, 6, 2 };
public static int min = 1;
public static int arrayMin() {
int i = 0;
if (arr == null) {
return 0;
} else {
while (i < arr.length) {
// some function/method call to find smallest number of arr[i]
i++;
return min;
}
}
return min;
}
public static void main(String[] args) {
System.out.println(arrayMin());
}
}
在你的代碼總是返回'1'如果'ARR!= null'否則'0',因爲你的'在'while'返回min'聲明循環。 – nkr
我認爲這是一個不錯的優化,可以返回範圍內值的最小值,這個範圍內的值可以用於數組中的每個元素。請注意,在Java中,0可能不是最小值,整數可能具有負值。 –
「null」的值通常不等於0元素的數組。如果您遇到null數組,您最好檢查null並拋出'NullPointerException'或'IllegalArgumentException'。 –