java学校购物目录

java学校购物目录,java,Java,所以我必须为学校的作业创建一个目录。目录必须包含3种产品并以数组形式存储,然后输入产品代码和产品数量以给出价格。输入“0”应结束程序。在程序结束之前,它应该打印总金额 我无法得到要打印的总金额。它一直给我0.0。我该怎么办 这是我的密码 package catalog; import java.util.*; public class Catalog1 { private static final String[] products = new String[3]; private

所以我必须为学校的作业创建一个目录。目录必须包含3种产品并以数组形式存储,然后输入产品代码和产品数量以给出价格。输入“0”应结束程序。在程序结束之前,它应该打印总金额

我无法得到要打印的总金额。它一直给我0.0。我该怎么办

这是我的密码

package catalog;


 import java.util.*;
 public class Catalog1 {
 private static final String[] products = new String[3];
 private static float total=0.0f; 
 private static final float tax = 15/100;
 private static final float[] subTotal = new float[3];
 private static final float[] itemTotal = new float[3];
 private static final double[]pPrice = new double[3];
 private static String pCode;
 public static void main(String[] args) {
        products[0] = "Condensed Milk"; 
         products[1] = "Distilled Water";
         products[2] = "Packed rice";
         pPrice[0] = (9.50);
         pPrice[1] = (3.00);
         pPrice[2] = (12.75);
        int quantity = 0;
        int orderNum = 0;
     Scanner s = new Scanner(System.in);  



         do{ 
                System.out.println("------------------------------------------");
                System.out.println("condensed Milk[M3487], $9.50 per can.");
                System.out.println("");
                System.out.println("Distilled Water [W3876], $3.00 a bottle.");
                System.out.println("");
                System.out.println("packed Rice [R9983], $12.75 for 5lbs.");
                System.out.println("------------------------------------------");

                     System.out.println("Please enter order number (0 to stop)");
                                pCode = s.nextLine();

                                        if(pCode.equals("M3487")){
                                            System.out.println("condensed Milk $9.50");
                                                System.out.println("Enter Quantity");
                                                    quantity = s.nextInt();
                                                       itemTotal[0] = (float) (pPrice[0]*quantity); 
                                                        System.out.println(quantity + " condensed Milk @ $9.50 = $" + itemTotal[0]);

                                        }else if(pCode.equals("W3876")){
                                             System.out.println("Distilled Water $3.00");
                                                System.out.println("Enter Quantity");
                                                    quantity = s.nextInt();
                                                        itemTotal[1] = (float) (pPrice[1] * quantity);
                                                        System.out.println(quantity +" Distilled Water @ 3.00 = $" + itemTotal[1]);

                                        }else if(pCode.equals("R9983")){
                                             System.out.println("packed Rice $12.75");
                                               System.out.println("Enter Quantity");
                                                   quantity = s.nextInt();
                                                        itemTotal[2] = (float) (pPrice[2] * quantity);
                                                        System.out.println(quantity +" Distilled Water @ 3.00 = $" + itemTotal[2]);

                                            }else if(pCode.equals("0")){
                                                System.out.println("your total bill is $" + total);
                                                break;
                                            }//close if statement
                                        orderNum++;
                                        quantity++;


            }while(true);//close while loop

}//close main method

public static float totalBill() {


           subTotal[0] = itemTotal[0] * tax;
           subTotal[1] = itemTotal[1] * tax;
           subTotal[2] = itemTotal[2] * tax;
           total = subTotal[0] + subTotal[1] + subTotal[2] + itemTotal[0] +     itemTotal[1] + itemTotal[2];
    return total ; 

}//close bill method
    }//close class
输出显示了这一点


炼乳[M3487],每罐9.50美元

蒸馏水[W3876],每瓶3美元

包装大米[9983兰特],每5磅12.75美元


请输入订单号(0停止) M3487 炼乳9.5美元 输入数量 2. 2炼乳@$9.50=$19.0


炼乳[M3487],每罐9.50美元

蒸馏水[W3876],每瓶3美元

包装大米[9983兰特],每5磅12.75美元


请输入订单号(0停止)


炼乳[M3487],每罐9.50美元

蒸馏水[W3876],每瓶3美元

包装大米[9983兰特],每5磅12.75美元



请输入订单号(0停止)

以解释注释:

private static final float tax = 0.15f;


你有一个计算账单总额的方法,但你没有使用它。关于范围,似乎也存在一些混乱。您不需要更新实例变量并返回它。“常规”方法是没有实例变量,也可能没有参数。当你解决了这两件事,也许你会得到你预期的结果。我怎么称呼它?。我正在尝试,但我所做的一切都不起作用。
System.out.println(“您的总账单是$”+totalBill())您应该可以找到关于基本java的教程。要调用函数,请使用
totalBill()
。但是,在开始调用函数之前,一定要了解返回值、参数和参数。这可以解决问题,但是我遇到了另一个问题。输入产品代码和数量后,菜单出现两次。您的意思是它再次出现吗?这是因为它在do while循环中。我希望它再次出现,这就是为什么我将它放入循环中,但它出现两次而不是一次。是否尝试使用调试器单步执行代码?是的,调试器没有找到任何内容。
System.out.println("your total bill is $" + totalBill());