我正在设置购物程序。下面的代码是一种方法。该代码包括建立商店和实际使用商店。在这种方法中,我试图根据用户购买的商品数来确定用户获得的折扣。
当用户开设商店时,他们可以设置x项商品以获得折扣。
例如,如果用户购买20件商品,并且有资格获得折扣的商品数量x设置为6件装。用户将从原始价格中减去(2 *商品价格)折扣。
每6包,用户免费获得1包,最多20包。
6包+ 1包免费+另外6包+ 1包免费+ 6包= 20包。
我尝试创建循环,例如在模数为0时减去用户想要购买的商品数量,同时对价值进行计数,并从用户购买的数量中减去商品,但是我却无法与之接近。
阵列是通过其他方法带来的:
price[i]
是商品的价格
buyItems[i]
是用户购买的商品数量
packs[i]
是用户选择的折扣,例如,用户可以设置折扣
折扣适用于2件装,3件装,甚至没有。
public static void checkOuts(String [] names, double [] price,double [] packs,double addDiscount[], double[] buyItems, double[]addDiscountrate, int k ){
double orgSub=0;
double newSub=0;
double addPercent=0;
double specDis =0;
double freePack=0;
double disCheck =0;
double count=0;
for (int i =0; i < k; i++ ) {
orgSub+=price[i]*buyItems[i];
}
System.out.println("Original Subtotal: $" + orgSub);
for (int i =0; i < k; i++ ) {
orgSub+=price[i]*buyItems[i];
}
System.out.println("Original Subtotal: $" + orgSub);
for (int j = 0; j < buyItems.length; j++) {
disCheck = buyItems[j];
for(int d =0; d < buyItems.length; d++) {
freePack = packs[d];
for (int s =1; s < disCheck; s++)
if (s % freePack==0) {
count++;
disCheck = disCheck -1;
System.out.println(disCheck);
}
}
specDis+= count*price[j];
// the final discount that will be subtracted from original
}
答案 0 :(得分:0)
为什么所有这些数组?他们不是一个数量吗? (我可能会误会)
如果您将其更改为整数,则可以免费获得
count = Math.floor(buyItems/packs);
答案 1 :(得分:0)
我的代码版本(我删除了从未解释过的内容):
public static void checkOuts(String[] names, double[] price, int[] packs, int[] buyItems) {
System.out.println("Name\tnumFree\ttotalNum\tTotalPrice");
for (int i = 0; i < names.length; i++) {
int numFree = buyItems[i] / (packs[i] + 1);
double totalPrice = (buyItems[i] - numFree) * price[i];
System.out.println(names[i] + "\t" + numFree + "\t" + buyItems[i] + "\t\t" + totalPrice);
}
}
使用以下代码调用时:
String[] names = {"Coke", "Pepsi"};
double[] price = {1, 1};
int[] packs = {3, 4};
int[] buyItems = {10, 20};
checkOuts(names, price, packs, buyItems);
您将获得以下输出:(与您的评论一致)
Name numFree totalNum TotalPrice
Coke 2 10 8.0
Pepsi 4 20 16.0
您可能还想研究使您的代码面向对象。与其传递并行数组,不如传递单个项目或订单的数组,这将更容易,它们将具有名称,价格,折扣和您需要的其他任何字段。