Как упростить следующий класс

Привет, я новичок в программировании, и мне интересно, как я могу упростить следующий код. Есть ли способ, которым я могу установить переменную, которая будет меняться вместо установки месяца 1-6?

double RATE;
double SAVING; 
double MONTH1;
double MONTH2;
double MONTH3;
double MONTH4;
double MONTH5;
double MONTH6;

System.out.print("Enter the monthly saving amount: ");
SAVING = input.nextDouble();

RATE = 1.00417;

MONTH1 = SAVING * RATE;
MONTH2 = (MONTH1 + SAVING) * RATE;
MONTH3 = (MONTH2 + SAVING) * RATE;
MONTH4 = (MONTH3 + SAVING) * RATE;
MONTH5 = (MONTH4 + SAVING) * RATE;
MONTH6 = (MONTH5 + SAVING) * RATE;

System.out.println("After the sixth month, the account value is $" + (float) MONTH6);

1 ответ

Что вы здесь делаете:

MONTH1 = SAVING * RATE;
MONTH2 = (MONTH1 + SAVING) * RATE;
MONTH3 = (MONTH2 + SAVING) * RATE;
MONTH4 = (MONTH3 + SAVING) * RATE;
MONTH5 = (MONTH4 + SAVING) * RATE;
MONTH6 = (MONTH5 + SAVING) * RATE;

Вы написали одно и то же снова и снова.

Для таких повторяющихся задач цикл всегда является лучшим решением.

С циклом вам даже не нужны все эти MONTH переменные. Вот пример расчета стоимости счета после totalMonths месяцы с использованием цикла для устранения повторяющегося кода:

int accountValue = 0;
int monthNumber = 0;

while (monthNumber < totalMonths) {                // Do what's inside the brackets as long as monthNumber is less than totalMonths.
    accountValue = (accountValue + saving) * rate; // Update the account value with saving and rate.
    monthNumber = monthNumber + 1;                 // Increase monthNumber by one.
}

System.out.println("After " + totalMonths + " months, the account value is $" + accountValue);

В конце кода выше accountValue будет иметь общую стоимость счета после totalMonths прошли месяцы

Это очень простой пример. Поэкспериментируйте с этим и убедитесь, что вы понимаете это на 100%.

Обратите внимание, что я записал имена переменных в нижнем регистре ( если быть точным, camelCase), так как это общее соглашение об именах в Java.

Другие вопросы по тегам