我正在学习有关CoreJava的初学者指南。
已经开始学习数组了,不知道是否在前面的课程中错过了一些内容,我想了解如何在以下代码中获取值:
// Find the minimum and maximum values in an array.
class MinMax {
public static void main(String args[]) {
int nums[] = new int[10];
int min, max;
nums[0] = 99;
nums[1] = -10;
nums[2] = 100123;
nums[3] = 18;
nums[4] = -970;
nums[5] = 5623;
nums[6] = 463;
nums[7] = -9;
nums[8] = 287;
nums[9] = 49;
min = max = nums[0];
for(int i = 1; i < 10; i++) {
if(nums[i] < min) min = nums[i];
if(nums[i] > max) max = nums[i];
}
System.out.println("min and max: " + min + " " + max);
}
}
此处:
min = max = nums [0];
for(int i = 1; i <10; i ++){
if(nums [i] <min)min = nums [i];
if(nums [i]> max)max = nums [i];
程序如何确定“ if(nums [i] <min”或“ if(nums [i]> max””?
min和max永远不会用值初始化。它只是“ min = max = nums [0];
To对我来说,这看起来像min 0 = max 0 = nums [0];因此-9将小于0或min,而18将大于0或max。
记录第 0 个元素为初值,当作最大值 max 和最小值 min。然后循环从第 1 个元素到最后一个元素,分别和记录的 max/min 比较,如果当前元素比 max 还大,就替换 max 的值;如果当前元素比 min 还小,就替换 min 的值。循环结束后就得到了整个数组中的最大值和最小值。
还有什么不理解的吗?