我必须为学校制作一个程序,要求用户输入他们想要的物品数量及其各自的价格。之后,他们必须输入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();
}
}
}
答案 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。在使用之前始终初始化变量。