我明天正在处理的这个 java 项目有问题。我应该创建一个 while 循环,提示用户输入商品的价格,并以任何负数结束循环,该负数无法计算。然后,我必须分别使用变量 3、2、1、0 提示用户其成员(member)折扣级别 plat 15% off/gold 7%/silver 3%/non member 0% off。对于无效的成员(member)状态输入,用户需要使用 do-while 循环再次输入有效的成员(member)状态。然后我使用商品总和的适当折扣%,然后对其征税。最后几个步骤很简单,但我陷入了循环。
我做了一些搜索,并在该网站上找到了这段代码,它完成了第一个 while 循环的工作,但没有以我需要的方式结束。 Using While Loop instead of a For Loop in Java to ask User Input
我修改了它以满足我的需要,但我仍然找不到一种方法使 throwable = 为任何负数,即 <0。这可能吗?我很确定有一种方法可以更简单地做到这一点,而无需尝试/捕获,但我还没有学过。这是我稍微修改过的版本
Scanner askPrice = new Scanner(System.in);
BigDecimal totalPrice = new BigDecimal("0");
Scanner keyboard = new Scanner(System.in);
while (true) {
System.out.println("Enter item price or negative number to quit:") ;
try {
double price = askPrice.nextDouble();
totalPrice = totalPrice.add(new BigDecimal(String.valueOf(price)));
}
catch (Throwable t) {
break;
}
System.out.println(totalPrice.toString());
}
我尝试将 try 和 catch 语句转换为 if/else 并将 catch throwable 替换为 else(askPrice <0),但我收到了大量错误。
我非常感谢您提供的任何帮助。 谢谢。
最佳答案
这听起来像是家庭作业。我知道很多老师反对学生使用“break”来退出循环。我将这样做。不需要 try-catch 语句。
public static void main(String[]args) {
Scanner keyboard = new Scanner(System.in);
double input = 0.0;
double totalPrice = 0.0;
do {
totalPrice += input;
input = keyboard.nextDouble();
}
while(input >= 0);
}
使用 while 循环:
public static void main(String[]args) {
Scanner keyboard = new Scanner(System.in);
double totalPrice = 0.0;
double input = keyboard.nextDouble();
while(input >= 0) {
totalPrice += input;
input = keyboard.nextDouble();
}
}
关于Java While 循环以负数中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22153033/