Java新手求助:数组最小值求解代码全流程解析
先把完整代码贴出来(修正了拼写错误):
int[] a7={8,90,-75,863,-7845}; int min3=0; for (int element1:a7){ if (element1<min3){ min3=element1; } } System.out.println("The Minimum Value of this array is"+min3);
下面逐行拆解每部分的作用:
第一行:
int[] a7={8,90,-75,863,-7845};
定义一个整数数组a7,直接初始化了5个整数元素:8、90、-75、863、-7845。第二行:
int min3=0;
创建一个整数变量min3,初始值设为0,用来存储后续找到的数组最小值。这里要注意:这个初始值存在隐患——如果数组里所有元素都比0大(比如数组是{1,2,3}),循环结束后min3会一直是0,而不是数组的真实最小值。正确的初始化方式应该是把min3设为数组的第一个元素,也就是int min3 = a7[0];。第三行:
for (int element1:a7){
这是你熟悉的for-each循环,作用是遍历数组a7的每一个元素:每次循环会把数组里的一个元素取出来,赋值给临时变量element1,数组有多少个元素,循环就会执行多少次(这里是5次)。第四行:
if (element1<min3){
条件判断语句:检查当前拿到的数组元素element1,是否比当前记录的最小值min3更小。第五行:
min3=element1;
如果上面的条件成立(当前元素比min3小),就把min3的值更新为这个更小的元素,相当于更新我们找到的最小值。第八行:
System.out.println("The Minimum Value of this array is"+min3);
打印最终找到的最小值。原代码里的printIn是拼写错误,正确写法是println(ln是line的缩写,打印后会自动换行)。
整个代码的逻辑是:先假设最小值是0,然后逐个检查数组里的每个元素,只要发现比当前最小值更小的数,就更新最小值,最后输出结果。
内容的提问来源于stack exchange,提问作者Devesh Sahoo

