【发布时间】:2015-02-28 11:38:00
【问题描述】:
我的部分作业是创建一个程序,要求用户输入 1-1000 范围内的商品价格。如果用户输入的价格不在该范围内,则程序循环返回以询问相同商品编号的价格(商品编号范围为 1-10)。如果输入价格在范围内,则程序会增加项目编号。并要求用户输入该商品的价格。我就是这样做的。但是,只有第 1 项行为正确。请指教。谢谢
boolean priceinrange = false;
do {
System.out.println("Please enter the price of item " + x + ":");
price = kb.nextDouble();
if (price>1 && price<1000)
priceinrange= true;
}
while (!priceinrange);
do {
System.out.println("Please enter the price of item:"+ (x+=1) + ":");
price = kb.nextDouble();
if (price>1 && price<1000)
priceinrange= true;
}
while (!priceinrange);
do {
System.out.println("Please enter the price of item"+ (x+=1) + ":");
price = kb.nextDouble();
if (price>1 && price<1000)
priceinrange= true;
else
System.out.println ("Please enter the price of item" + x + ":");
}
while (!priceinrange);
do {
System.out.println("Please enter the price of item " + (x+=1) + ":");
price = kb.nextDouble();
if (price>1 && price<1000)
priceinrange= true;
else
System.out.println ("Please enter the price of item" + x + ":");
}
while (!priceinrange);
do {
System.out.println("Please enter the price of item" + (x+=1)+":");
price = kb.nextDouble();
if (price>1 && price<1000)
priceinrange= true;
else
System.out.println ("Please enter the price of item" + x + ":");
}
while (!priceinrange);
do {
System.out.println("Please enter the price of item" + (x+=1)+ ":");
price = kb.nextDouble();
if (price>1 && price<1000)
priceinrange= true;
else
System.out.println ("Please enter the price of item :");
}
while (!priceinrange);
do {
System.out.println("Please enter the price of item" + (x+=1) + ":");
price = kb.nextDouble();
if (price>1 && price<1000)
priceinrange= true;
else
System.out.println ("Please enter the price of item :");
}
while (!priceinrange);
do {
System.out.println("Please enter the price of item" + (x+=1)+ ":");
price = kb.nextDouble();
if (price>1 && price<1000)
priceinrange= true;
else
System.out.println ("Please enter the price of item :");
}
while (!priceinrange);
do {
System.out.println("Please enter the price of item" + (x+=1) +":");
price = kb.nextDouble();
if (price>1 && price<1000)
priceinrange= true;
else
System.out.println ("Please enter the price of item :");
}
while (!priceinrange);
do {
System.out.println("Please enter the price of item" +(x+=1)+ ":");
price = kb.nextDouble();
if (price>1 && price<1000)
priceinrange= true;
else
System.out.println ("Please enter the price of item :");
}
while (!priceinrange);
【问题讨论】:
-
对我来说似乎工作正常......
-
重新命名。循环和迭代的意思是一样的
-
您可以通过将提示的
do-while移动到您可以调用的方法来降低复杂性。然后,您可以给我们一个简单的for-loop来提示您输入任意数量的项目... -
1-1000 范围是包含还是不包含?您的条件是当前独有的 (2-999)
-
重新问题文本:“程序迭代项目编号。”我相信你的意思是增加项目编号。如在,无论项目编号是什么,它都会加 1。 0 变为 1,1 变为 2。这是递增的。请介意编辑问题吗?