java 折扣_Java折扣计算

你的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

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
文明发言,共建和谐米科社区
提交
头像

昵称

取消
昵称表情图片

    暂无评论内容