慕雪1171666
2017-12-23 22:08
大神们我想请教下为什么最小值我输入if(nums[i]<nums[0]){min=nums[i];}得出的是20,而把nums[0]改成min得出的就是4了呢?
原代码意思是如果nums[i]比nums[0]小,那就把nums[i]的值赋给min;
你把条件里的nums[0]改成min,意思就变成:如果nums[i]的值比min小,那就把nums[i]的值赋给min;
循环只要小于nums[0] min就会被当前nums[i]赋值,如果i的值代表20 ,那么15比20小,就会赋值15,再循环一次,18的值比20小就会赋值min为18,这个逻辑本身就不合理
为min时是个变量,已经取值为小值,继续循环遇见比当前min还小的值,才会重新赋值为更小的值,逻辑对,所以结果对
因为nums[0]与min是不同的变量,自然就会有不同的结果!!!
Java入门第一季(IDEA工具)升级版
1167347 学习 · 18629 问题
相似问题