你的getLeastPriceItem函数有一点逻辑错误。
问题#1:
for(int i=1;i
第一索引应该是0而不是1,否则你没有处理的第一项。
问题2:
if (item[i].getItemPrice() < min)
你不包括折扣价进行比较。
假设折扣是整数,而不是百分比则代码应该像double afterDiscount = item[i].getItemPrice() – item[i].getItemDiscount();
问题3:
public static double getLeastPriceItem
与其说是一个问题,但我会建议返回改为实体Item。
所以这里是我提出的解决方案;
public static void main(String[] args) {
Item[] item= new Item[5];
item[0] = new Item(1, “a”, 100.0, 20.0);
item[1] = new Item(2, “b”, 80.0, 30.0);
item[2] = new Item(3, “c”, 300.0, 40.0);
item[3] = new Item(4, “d”, 400.0, 390.0);
item[4] = new Item(5, “e”, 500.0, 60.0);
Item cheapest = getLeastPriceItem(item);
System.out.println(“Least item price: “+ cheapest.getItemPrice() + ” with discount of: ” + cheapest.getItemDiscount());
public static Item getLeastPriceItem(Item[] item)
double currMin = Double.MAX_VALUE;
Item cheapestItem = null;
for(int i=0;i
double afterDiscount = item[i].getItemPrice() – item[i].getItemDiscount();
if(afterDiscount < currMin)
currMin = afterDiscount;
cheapestItem = item[i];
return cheapestItem;
输出:
最商品价格:400.0用优惠:390.0
这里的算法是跟踪当前最廉价的商品的价值,也是最便宜的项目目标。循环访问数组中的所有项目并相应地进行比较,然后返回最便宜的项目对象。
返回项目是一个更优雅的解决方案,因为一旦您找出最便宜的对象的实例,您可以根据其属性进行/打印任何您喜欢的对象。例如。发现它有多少折扣价值等。
原文链接:https://blog.csdn.net/weixin_39660922/article/details/114067025?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165277499316782246411588%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=165277499316782246411588&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-5-114067025-null-null.nonecase&utm_term=%E4%BC%98%E6%83%A0
暂无评论内容