为什么价值没有正确递增?

时间:2015-09-28 20:43:55

标签: java loops do-while

我正在研究一个Java项目并遇到一个奇怪的错误。我在do while循环中有一个包含多个选项的菜单,但是当用户在他的订单中添加更多比萨时,我希望变量pizzasOrdered继续增加。这是我的代码:

import java.util.Scanner;
public class PizzaMenu {

    public static void main(String[] args) {
        int numPlain;
        int numPepperoni;
        int pizzasOrdered = 0;
        boolean flag = true;

        System.out.println("Welcome to Pies, Pies, and pis!");
        Scanner kbd = new Scanner(System.in);
        System.out.println("Is there a customer in line? (1 = yes, 2 = no)");
        int isCustomer = kbd.nextInt();

        System.out.println("Are you a Pie Card member? (1 = yes, 2 = no)");
        boolean isMember;
        int pieCardResponse = kbd.nextInt();
        if(pieCardResponse == 1)
        {
            isMember = true;
        }
        else
        {
            isMember = false;
        }
        do{
            System.out.println("Please choose an option: \n\t1) Update Pizza Order\n\t2) Update Cherry Pie Order\n\t3) Update Charm Order\n\t4) Check Out");
            int option = kbd.nextInt();

            if(option == 1)
            {
                System.out.println("Here is your current order: \n\t" + pizzasOrdered + " pizzas ordered");
                System.out.println("How many plain pizzas would you like for $10.00 each?");
                numPlain = kbd.nextInt();
                System.out.println("How many pepperoni pizzas would you like for $12.00 each?");
                numPepperoni = kbd.nextInt();
                pizzasOrdered = numPlain + numPepperoni;


            }
            else if(option == 2)
                {
                    System.out.println("Here is your current order: \n");
                }
            else if(option == 3)
            {

            }
            else if(option == 4)
            {

            }
        }while(flag);

    }

}

1 个答案:

答案 0 :(得分:2)

你应该改变这个

pizzasOrdered = numPlain + numPepperoni;

pizzasOrdered += (numPlain + numPepperoni);

在你的情况下,你没有递增变量,你只是在每次迭代中为它分配新的值。