ли кто-нибудь видит неправильный код здесь ?? я бы хотел видеть, пока работает постоянно, пока условие не выполняется, но это, конечно, нет. скажите, пожалуйста, какая часть кода разрушает мой ожидаемый результат?do-while loop не постоянно работает
public static void main (String[] args){
Scanner scan = new Scanner(System.in);
ArrayList<Item> cart = new ArrayList<Item>();
Item item;
String itemName;
double itemPrice;
int quantity;
String keepShopping;
double total = 0.0;
DecimalFormat m = new DecimalFormat("######,##");
do {
System.out.print ("Enter the name of the item: ");
itemName = scan.nextLine();
System.out.print ("Enter the unit price: ");
itemPrice = scan.nextDouble();
System.out.print ("Enter the quantity: ");
quantity = scan.nextInt();
item = new Item(itemName,itemPrice,quantity);
cart.add(item);
total +=itemPrice*quantity;
System.out.println ("Continue shopping (y/n)? ");
keepShopping = scan.nextLine();
} while (keepShopping.equals("y"));
for (int i = 0; i < cart.size(); i++) {
System.out.println(cart.get(i).toString());
System.out.println("Total price: " + m.format(total));
}
scan.close();
}
Пожалуйста, уменьшите это до [mcve] и сообщите нам, какой ввод вы используете. –
Подсказка: распечатайте 'keepShopping' после того, как вы его прочитали. Я подозреваю, что это не то, что вы ожидаете. –
@ user307610 Я предполагаю, что у вас есть лишние пробелы или что-то, что приводит к тому, что значение не равно «y». Попробуйте называть обрезку на keepShopping. – Phil