逃避这种无限循环的最佳方法是什么?

Jer*_*phy 0 java loops

这是我的代码的相关部分..

static void salesSlip( String[] day)
{
    // for each employee
    for (int i = 0; i < salesArray[0].length; i++)
    {   
        int employeeNo = i + 1;
        System.out.printf("Employee %d please enter sales details for %s\n", employeeNo, day[i]);
        System.out.println("------------------------------------------------");

        // for each product chosen call dailySales  
        System.out.println("Please enter product number or -1 when finished");
        int productNo = input.nextInt();

        while (productNo != -1)
        {
            dailySales(productNo, employeeNo);
        }
    }

}

static void dailySales(int product, int employeeNo)
{
    System.out.printf("Enter total value of sales for product %d:", product);
    int sales = input.nextInt();
    salesArray[product][employeeNo] = sales; 
}
Run Code Online (Sandbox Code Playgroud)

当我输入一个不是-1的数字时,每天都会调用Sale(),当我在dailySales()中输入一个数字时,会一次又一次地调用它.

样本输出:

员工1请输入星期一的销售详情

完成后请输入产品编号或-1 1
输入产品1
的销售总价值:2 输入产品1的销售总价值:

rge*_*man 5

在你的while循环中,没有任何东西改变它的值productNo,所以它将是一个无限循环.

提示用户并获得更多输入,productNowhile循环底部再次更改.

System.out.println("Please enter product number or -1 when finished");
int productNo = input.nextInt();

while (productNo != -1)
{
    dailySales(productNo, employeeNo);

    System.out.println("Please enter product number or -1 when finished");
    productNo = input.nextInt();
}
Run Code Online (Sandbox Code Playgroud)