Java 如何让客户继续购物,直到客户决定停止?我不知道为什么我的循环不起作用

Java 如何让客户继续购物,直到客户决定停止?我不知道为什么我的循环不起作用,java,Java,您需要为一家销售硬件产品的公司编写Java程序 通过互联网。您的程序将列出所有可用硬件及其 相应的价格供客户选择。您的客户需要输入所选的 项目和该项目的数量。您的程序应该计算 客户需要付费。总价还必须包含3%的税费。 为了方便您,该公司只销售5种商品,并向您提供 自由选择要出售的商品以及价格。该计划将继续下去 要求客户继续购物,直到客户决定停止。在 会话结束时,必须向用户显示总价。这就是问题所在 package courseworkitpl; 导入java.util.Scanner 公共课作业

您需要为一家销售硬件产品的公司编写Java程序 通过互联网。您的程序将列出所有可用硬件及其 相应的价格供客户选择。您的客户需要输入所选的 项目和该项目的数量。您的程序应该计算 客户需要付费。总价还必须包含3%的税费。 为了方便您,该公司只销售5种商品,并向您提供 自由选择要出售的商品以及价格。该计划将继续下去 要求客户继续购物,直到客户决定停止。在 会话结束时,必须向用户显示总价。这就是问题所在

package courseworkitpl;
导入java.util.Scanner

公共课作业{

public static void main(String[] args) {
    // TODO code application logic here
    int choice,quantity;
    double price,tax;
    String answer;

    int Macbook = 1;
    int Dell = 2;
    int ROG = 3;
    int Alienware = 4;
    int Razer = 5;

    int MacbookCost = 300;
    int DellCost = 250;
    int ROGCost = 395;
    int AlienwareCost = 400;
    int RazerCost = 350;
    tax=0.03;

    Scanner keyboard = new Scanner(System.in);
    Double totalSum = 0d;
做{


}

必须将do..while条件更改为

Double totalSum = 0d;

do{

    System.out.println("Welcome to my store, which computer do you like to purchase?");
    System.out.println("1. Macbook");
    System.out.println("2. Dell");
    System.out.println("3. ROG");
    System.out.println("4. Alienware");
    System.out.println("5. Razer");

    choice = keyboard.nextInt();
    if (choice == 1) {
        price = (MacbookCost*0.03+(MacbookCost));
    } else if (choice == 2) {
         price = (DellCost*0.03+(DellCost));
    } else if (choice == 3) {
        price = (ROGCost*0.03+(ROGCost));
    }else if (choice == 4) {
         price = (AlienwareCost*0.03+(AlienwareCost));
    }else if (choice == 5) {
         price = (RazerCost*0.03+(RazerCost));
    }        
    else  {
        price = 0;
        System.out.println("invalid choice");
    }

    totalSum = totalSum + price;

    System.out.print("Do you want to continue yes/no?");
    answer = keyboard.next();

    } while(answer.equalsIgnoreCase("yes"));
    System.out.println("That will be $" + totalSum + " with 3% of tax.");
对于对象,我们应该使用equals方法

查看这些链接了解更多详细信息

我尝试并更改了do和while条件。但仍然不起作用。您是否遇到任何异常?您是否可以用新代码更新问题?它不断显示这将是360.5美元,含3%的税。是否要继续?是/否?是,将是360.5美元,含3%的税。是否要继续是/否?它不循环新代码是updatedWelcome to StackOverflow!我知道你是一个新的投稿人,所以我建议你签出并提交。你可能还想阅读。
Double totalSum = 0d;

do{

    System.out.println("Welcome to my store, which computer do you like to purchase?");
    System.out.println("1. Macbook");
    System.out.println("2. Dell");
    System.out.println("3. ROG");
    System.out.println("4. Alienware");
    System.out.println("5. Razer");

    choice = keyboard.nextInt();
    if (choice == 1) {
        price = (MacbookCost*0.03+(MacbookCost));
    } else if (choice == 2) {
         price = (DellCost*0.03+(DellCost));
    } else if (choice == 3) {
        price = (ROGCost*0.03+(ROGCost));
    }else if (choice == 4) {
         price = (AlienwareCost*0.03+(AlienwareCost));
    }else if (choice == 5) {
         price = (RazerCost*0.03+(RazerCost));
    }        
    else  {
        price = 0;
        System.out.println("invalid choice");
    }

    totalSum = totalSum + price;

    System.out.print("Do you want to continue yes/no?");
    answer = keyboard.next();

    } while(answer.equalsIgnoreCase("yes"));
    System.out.println("That will be $" + totalSum + " with 3% of tax.");