2017-09-26 19 views
0

在第一个循环中,如果子句userVals [i]从0开始,比较将在索引0处的值和minVal之间初始化为0;所以,为什么我需要在for循环之前设置这个“minVal = userVals [0];”语句。其次,让我们假设minVal = userVals [0];然后,我们假设minVal = userVals [0];如果minVal = userVals [0],则返回0。是必须具备的。我认为for循环中的“i”应该从索引1开始,因为userVals [0]已经分配给了minVal。然而,在这种情况下,“i”在0或1开始的地方并不重要,它会产生相同的结果。在数组中查找最小值的语句

minVal = userVals[0]; 
for(i =0; i< userVals.length; i++) { 
    //for(i =1; i< userVals.length; i++) { 
    if (userVals[i] < minVal) { 
     minVal = userVals[i]; 
    } 
} 
System.out.println(minVal); 

您的帮助表示感谢!

回答

0

对于第一点,您需要设置minVal最初的东西。你可以选择一些标记值,然后在循环中检查它,使用像Integer/MAX_VALUE这样的值,或者只是使用列表中的一个元素。最后一种方法是最干净的,只要您知道该列表将包含至少一个元素。如果它为空,则userVals[0]将导致错误。

对于你的第二点,是的,它看起来像你可以在1开始索引。我立即看不到任何会导致的错误。

+0

感谢您的帮助。 – Ben

相关问题