for循环的工作以获取最小值

时间:2018-06-26 19:17:48

标签: salesforce apex

这听起来有点奇怪,但是有人可以解释一下下面的循环如何获得最低价值

Decimal LowestPrice;
 //for loop to find the smallest value
    for(Integer i = 0;i<leadingPrice.size();i++){
        //no idea how the below line is getting the lowest value 
        if(LowestPrice == null || leadingPrice.get(i) < LowestPrice){
            lowestprice = leadingPrice.get(i);

        }

LeadingPrice是一个小数列表,上述循环将最小值分配给变量lowestprice,有人可以解释一下上述循环的工作方式吗 预先谢谢你。

2 个答案:

答案 0 :(得分:0)

undefined

它使用if(LowestPrice == null || leadingPrice.get(i) < LowestPrice){ lowestprice = leadingPrice.get(i); } 检查是否分配了LowestPrice。如果分配了LowestPrice,则检查当前索引(Lowestprice == null)是否小于LowestPrice。如果leadingPrice.get(i)较小,则将其分配给LowestPrice

答案 1 :(得分:0)

第一次通过循环,LowestPrice为空(我不喜欢这种假设,但这是编写代码的方式),因此它将LowestPrice设置为数组LeadPrice中的第一个条目。随后的每个for循环中,都会将LowestPrice与LeadingPrice数组中的下一个条目进行比较。如果新条目较低,则LowestPrice将更新为新条目。如果不是,它将保持当前状态。经过整个阵列的完整行程后,您可以保证获得最低的价格。

一种更简洁的陈述方式是:假设第一个条目最低,然后通读整个数组以寻找较低的价格。每次找到一个,您就会替换当前的最低候选人。