根据练习: “一家宠物店希望给它一个折扣 客户,如果他们购买一个或多个宠物和 至少五件其他物品。折扣是 相当于另一个成本的20% 物品,但不是宠物。
实施方法 public static void discount(double [] price,boolean [] isPet,int nItems) 该方法接收关于特定销售的信息。对于第i项,价格[i]是 任何折扣前的价格,如果该项目是宠物,则isPet [i]为真。
编写一个程序,提示收银员输入每个价格,然后输入Y作为宠物或N. 另一个项目。使用-1的价格作为哨兵。将输入保存在数组中。打电话给 您实施的方法,并显示折扣。“
我已经制作了discount()方法,但是我无法通过while循环创建收银员提示。练习的书给了我这些 Tips 这就是我的尝试:
import java.util.Scanner;
public class Pet {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
double[] prices = new double[10];
boolean[] isPet = new boolean[5];
int items = 0;
int count = 0;
System.out.println("Hello. Please enter all prices, pets and items.");
String input = in.nextLine();
while(!input.equals("-1")){
count++;
if(input.equals("Y")){
items++;
isPet[items] = true;
}
if(input.equals("N")){
items++;
}
if(!input.equals("Y") && !input.equals("N")){
double price = Double.parseDouble(input);
prices[count] = price;
}
}
}
public void discount(double[] prices, boolean[] isPet, int nItems){
double total = 0;
double petTotal = 0;
double realTotal = 0;
int rItems = nItems;
for(int i = 0; i < prices.length; i++){
total = total + prices[i];
if(isPet[i]){
rItems = rItems - 1;
petTotal = petTotal + prices[i];
}
}
for(int i = 0; i < isPet.length; i++){
int count = 0;
if(isPet[i] && rItems >= 5 && count < 2){
count++;
total = total - petTotal;
realTotal = total * 0.80;
realTotal = realTotal + petTotal;
System.out.println(realTotal);
}
if(rItems < 5){
System.out.println(total);
}
}
}
}
这显然是错误的,我不知道如何解释练习和提示!我完全感到困惑,根据这个练习,有人可以帮我找到“如何通过while循环实现收银员提示”。或者也许给我一个伪代码/逻辑这个练习?我感谢你的时间。
答案 0 :(得分:0)
首先,很明显你的代码存在很多问题,但是你的问题是正确的,所以不要放弃。我将就可能的方向提供一些指示,以满足任务要求。
我建议您最初的重点应放在用于从用户收集数据的while循环中。你快到了,while(!input.equals("-1"))
确实看起来像是正确的方法。 但您只是让用户输入数据一次,这位于String input = in.nextLine();
的循环之上。
您想要的是使用用户下次购买时更新循环中的input
变量,因此input = in.nextLine();
就足够了(可能考虑使用整数)。
然后,一旦您正确运行此功能,请关注折扣方法。
这是一个功能while循环的快速示例,它将收集您需要的数据,玩弄它并尝试理解它。
System.out.println("Please enter all prices, pets and items.");
String input = in.nextLine();
while (!"-1".equals(input)) {
System.out.println("Please enter all prices, pets and items.");
input = in.nextLine();
}