如何比较数组中的值(整数)并将最低值存储为单独的变量?

时间:2014-09-01 19:41:58

标签: java arrays if-statement for-loop compare

double lowestNum = priceArray[0]; //setting a default value just in case none of the
                                  //cases passes the if statement
    for (int i = 1; i < priceArray.length; i++) {
        if (priceArray[i] < priceArray[i - 1]) {
            lowestNum = priceArray[i]; //what I'm trying to do is rewrite this
                                          //value to the "leastCost" variable
        }
    }

System.out.println("The lowest number is: " + lowestNum);
}

在这段代码中,我最终获得0,priceArray [3] = {2.2,2.4,3.3}。如果我改变:

lowestNum = priceArray[i];

lowestNum += priceArray[i];

当我得到2.2时,我最终会得到3.3。有关如何做到这一点的任何建议吗?

4 个答案:

答案 0 :(得分:0)

将此if替换为:

if (priceArray[i] < lowestNum) {
    lowestNum = priceArray[i]; //what I'm trying to do is rewrite this
}

实际上,您的代码正在将数组的元素与之前的元素进行比较。您未与lowestNum中存储的已保存的最低值进行比较。

答案 1 :(得分:0)

if (priceArray[i] < priceArray[i - 1]) 

应替换为

if (priceArray[i] < lowestNum)

答案 2 :(得分:0)

您需要与当前最低值进行比较:

for (int i = 1; i < priceArray.length; i++) {
    if (priceArray[i] < lowestNum) {
        lowestNum = priceArray[i]; 
    }
}

答案 3 :(得分:0)

<强> 1。在设置默认值之前,请检查阵列是否为空。

<强> 2。您的情况有误。您需要将目前由“lowestnum”持有的号码与下一个可能的候选人进行比较,直到没有更多的号码可以检查。

if(priceArray[i] < lowestNum){
  lowestNum = priceArray[i];
}

注意:有更有效的方法(算法...查找“搜索算法”)来实现你想要做的事情,你当然不需要对它们进行编程,因为它们通常已经被编程到最好的程序在各自的STL(标准模板库)中为每种编程语言提供可能的效率。

3. 在寻求帮助之前,请先尝试一下您的问题。这是非常基本的,如果您要求为遇到的任何问题提供现成的解决方案,您将永远不会学到任何东西......我建议您阅读任何编程书的前2或3章,了解您有兴趣学习的语言。 ..

希望现在有所帮助......