public static void main(String[] args) {
Scanner keyboard = new Scanner (System.in);
double budget, total, expenseTotal;
System.out.print("Enter your budget for the month: ");
budget = keyboard.nextDouble();
System.out.println("Type -99 to stop calculations\n");
byte start = 1;
double expense = 0;
while (expense != -99) {
System.out.print("Enter expense " + start + " :");
expense = keyboard.nextDouble();
start++;
if (expense == -99) {
System.out.println();
total = (budget - expense) - 99;
System.out.printf("Your current total budget is: $%,.2f \n" , total);
}
}
}
Токовый выход:Как изменить переменную вне цикла
Введите свой бюджет за месяц: 1000 Тип -99, чтобы остановить расчеты
Введите счет 1: 100
Введите расходы 2: -99
Ваш текущий бюджет составляет: $ 1,000,00
Желаемый результат:
Ваш текущий общий бюджет: $ 900,00
Проблема: счет был объявлен вне заявления в то время и получает номер 0. Я понял, что, поскольку расходы = keyboard.nextDouble(); был в цикле, что он будет обновлять расходы, которые были помещены вне цикла, но это не так. Итак, любые решения? Благодарю.
Что привело вас к выводу, что оно не обновлялось? Вы попробовали 'println' сразу после ввода клавиатуры? –
Потому что всего = (бюджет - расход) - 99; –
Ваша проблема в том, что 'nextDouble()' не пропускает строку после использования. См. Ссылку. –