我正在为明天工作的这个Java项目有问题。我应该做一个while循环,提示用户输入商品价格,并以任何负数结束循环,该负数无法计数。然后,我必须使用变量3、2、1,0分别提示用户其会员折扣等级分别为15%/金7%/银3%/非会员0%。对于无效的成员身份输入,用户需要使用do-while循环以有效的身份再次输入。然后,我从项目总和中使用适当的折扣百分比,然后对它征税。最后几步很简单,但是我陷入了循环。
我进行了一些搜索,并在此站点上找到了此代码块,该代码块可以在第一个while循环中完成工作,但并未以我需要的方式结束。
Using While Loop instead of a For Loop in Java to ask User Input
我对其进行了修改以满足自己的需要,但仍然找不到将throwable =设置为任何负数(即
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,并用else(askPrice
我非常感谢您可以提供的任何帮助。
谢谢。
最佳答案
这听起来像作业。我知道很多老师反对使用“休息”退出循环的学生。这就是我要怎么做。无需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();
}
}