l oop заканчивается при вводе 0
; проблема в том, что ваше println
утверждение находится за пределами l oop. Ваш код должен выглядеть следующим образом:
...
Total += Sub_Total;
System.out.printf("Total is $%5.2f", Total);
}
}
}
Если вы хотите, чтобы ваша программа заканчивалась сразу после ввода 0
, вы можете добавить оператор if
:
Scanner input = new Scanner(System.in);
System.out.println("Enter item price or zero to quit: ");
double price = input.nextDouble();
if (price <= 0) {
System.out.println("input: zero - program terminated.");
return;
}
...
. для эффективной работы код должен быть реструктурирован. Он также может быть оптимизирован для устранения избыточности; следующие условия должны обработать условия и правильно завершиться:
import java.util.*;
class Untitled {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
double total = 0;
double subtotal = 0;
double qty = 0;
System.out.println("Enter item price or zero to quit: ");
double price = input.nextDouble();
while (price > 0) {
System.out.println("Enter the quantity for this item: ");
qty = input.nextDouble();
subtotal = price * qty;
total += subtotal;
System.out.printf("Total of this item is $%4.2f", subtotal);
System.out.println();
System.out.println("\nEnter item price or zero to quit: ");
price = input.nextDouble();
if (price <= 0)
break;
}
System.out.printf("Total is $%5.2f", total);
}
}
Как уже упоминалось в комментариях следуйте соглашениям, используя строчные буквы для имен переменных.