我无法理解为什么在最后一次迭代12中正在替换14.如果条件只有一个大的器官最大电流数组,那么替换另一个最大值仍然是相同的。
请问可能的解释?
此过程产生当前循环:
max: 1 min: 1
max: 3 min: 1
max: 9 min: 1
max: 10 min: 1
max: 12 min: 1
max: 14 min: 1
max: 12 min: 1
循环:
int result=0;
int arr[] = { 1, 3, 9,10,12,14,12 };
for (int i = 0; i < arr.length; i++) {
int max=arr[0];
int min=arr[0];
if(arr[i]>max){
max=arr[i];
}
else if(arr[i]<min){
min=arr[i];
}
System.out.println("max: " + max + " min: "+min);
}
答案 0 :(得分:5)
max
和min
int max=arr[0];
int min=arr[0];
应该在循环之前。否则,您将在循环的每次迭代中覆盖这些变量。
int max=arr[0];
int min=arr[0];
for (int i = 0; i < arr.length; i++) {
if(arr[i]>max){
max=arr[i];
} else if (arr[i]<min) {
min=arr[i];
}
System.out.println("max: " + max + " min: "+min);
}
此代码假定数组不为空。