Добрый день. Метод saveExpense по задумке должен возвращать измененное значение переменной moneyBeforeSalary, но после каждой итерации moneyBeforeSalary, принимает исходное значение.
Прошу помочь. Заранее спасибо!
код:
public static void main(String[] args) {
double[] expenses = new double[7];
Scanner scanner = new Scanner(System.in);
System.out.println("Сколько денег у вас осталось до зарплаты?");
double moneyBeforeSalary = scanner.nextDouble();
System.out.println("Сколько дней до зарплаты?");
int daysBeforeSalary = scanner.nextInt();
while (true) {
printMenu();
int command = scanner.nextInt();
if (command == 1) {
convert(scanner, moneyBeforeSalary);
} else if (command == 2) {
getAdvice(moneyBeforeSalary, daysBeforeSalary);
} else if (command == 3) {
saveExpense(scanner, moneyBeforeSalary, expenses);
} else if (command == 4) {
printAllExpenses(expenses);
} else if (command == 5) {
System.out.println("Самая большая сумма расходов на этой неделе составила " + findMaxExpense(expenses) + " руб.");
} else if (command == 0) {
System.out.println("Выход");
break;
} else {
System.out.println("Извините, такой команды пока нет.");
}
}
}
public static double saveExpense(Scanner scanner, double moneyBeforeSalary, double[] expenses) {
System.out.println("За какой день вы хотите ввести трату: 1-ПН, 2-ВТ, 3-СР, 4-ЧТ, 5-ПТ, 6-СБ, 7-ВС?");
int day = scanner.nextInt();
System.out.println("Введите размер траты:");
double expense = scanner.nextDouble();
moneyBeforeSalary -= expense;
expenses[day - 1] = expenses[day - 1] + expense;
System.out.println("Значение сохранено! Ваш текущий баланс в рублях: " + moneyBeforeSalary);
if (moneyBeforeSalary < 1000) {
System.out.println("На вашем счету осталось совсем немного. Стоит начать экономить!");
}
return moneyBeforeSalary;
}