【发布时间】:2016-11-14 00:40:35
【问题描述】:
在一个基本的 java 程序中,我定义了一个类的两个方法,它们应该从一组四个双精度数中返回最大和最小数字。 value 参数从 for 循环中获取,然后与常设的 min 或 max 参数进行比较。但是,输出不正确,我似乎无法找出原因;我知道我在某处犯了逻辑错误。
两种方法-
//calculate the minimum
public double calcMin(double value, double min)
{
if (min < value)
{
min = value;
}
return value;
}
//calculate the maximum
public double calcMax(double value, double max)
{
if (max < value)
{
max = value;
}
return max;
}
for 循环-
for (int i = 0; i < fillups.length; i ++)
{
distance[i] = fillups[i].calcDistance();
milesPerGallon[i] = fillups[i].calcMPG(distance[i]);
cost[i] = fillups[i].calcTotalCost();
minimum = fillups[i].calcMin(distance[i], minimum);
maximum = fillups[i].calcMax(distance[i], maximum);
minMPG = fillups[i].calcMin(milesPerGallon[i], minMPG);
maxMPG = fillups[i].calcMax(milesPerGallon[i], maxMPG);
minPrice = fillups[i].calcMin(price[i], minPrice);
maxPrice = fillups[i].calcMax(price[i], maxPrice);
fillups[i].printResults(i, day[i], distance[i], cost[i], milesPerGallon[i]);
}
calcMax 方法似乎有效,但 calcMin 无效。也许有一种方法可以使用 Double.MAX_VALUE 和 Double.MIN_VALUE 常量使它们工作。
【问题讨论】:
-
您似乎对每种情况都有相同的表达方式,但它们应该相反。
-
感谢大家的意见。我能够修复它并继续使用您的建议和示例。