有关循环的问题

时间:2015-02-21 02:35:47

标签: java

我必须为学校制作一个程序,要求用户输入他们想要的物品数量及其各自的价格。之后,他们必须输入GST,QST(井税),程序必须计算小计和总计。

我有一点问题。我的程序必须计算用户&#34;创建的错误数量。通过输入错误的值。当我不得不编码&#34;询问每个项目的价格时,我碰壁了#34;。我尝试了一个for循环,但是eclipse在它进入for循环之前终止了程序(没有明显的原因,所以它一定是一个逻辑错误,对吧?)无论如何,我在这里:< / p>

import java.util.Scanner;

public class ItemCost {
    public static void main(String[] args) {
        int i = 1;
        int items, d, item;
        double gst, qst, subt, Tot, PriceItems;
        Scanner x = new Scanner(System.in);
        Scanner y = new Scanner(System.in);

        System.out.println("Please input the amount of items bought");
        items = x.nextInt();

        while (items < 1 || items > 10) {
            System.out.print("Sorry the input was not correct, please try again\n");
            items = x.nextInt();
            i++;
        }

        for (item = 1; item == items; item++) {
            System.out.println("Please input the price of" + item);

            PriceItems = y.nextDouble();
        }
    }
}

1 个答案:

答案 0 :(得分:1)

您的for loop仅在用户输入1作为项目​​数时执行,因为for循环中存在此item == items;条件。请参阅以下更正的代码。

import java.util.Scanner;

public class ItemCost {
    public static void main(String[] args) {
        int items, d, item;
        double gst, qst, subt, Tot, PriceItems;
        Scanner x = new Scanner(System.in);
        Scanner y = new Scanner(System.in);

        System.out.println("Please input the amount of items bought");
        items = x.nextInt();

        while(true){ //Changed here
           if(items < 1 || items > 10) {
               System.out.print("Enter items between 1 and 10(inclusive)\n");
               items = x.nextInt(); 
           }
           else {
               break;
           }
        }

        for (item = 1; item <= items; item++) { //changed here as well
            System.out.println("Please input the price of" + item);
            PriceItems = y.nextDouble();
        }
    }
}

P.S。在使用之前始终初始化变量。