Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
193 views
in Technique[技术] by (71.8m points)

遇到“ min = max = nums [0];”问题

我正在学习有关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。


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

记录第 0 个元素为初值,当作最大值 max 和最小值 min。然后循环从第 1 个元素到最后一个元素,分别和记录的 max/min 比较,如果当前元素比 max 还大,就替换 max 的值;如果当前元素比 min 还小,就替换 min 的值。循环结束后就得到了整个数组中的最大值和最小值。

还有什么不理解的吗?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...