2015-02-11 5 views
0

Привет, я новичок в программировании, и мне интересно, как я могу упростить следующий код. Есть ли способ, которым я могу установить переменную, которая изменится вместо установки месяца 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); 
+0

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html –

+0

Ребята, пожалуйста, не оценивайте вопросы по причине 1) Отсутствие знаний/опыта или 2) Отсутствие предшествующие исследования. S.O. является ресурсом для многих программистов всех уровней навыков, чтобы учиться, давайте не будем препятствовать новым пользователям оценивать свои вопросы, если не будет видно, что не было никаких усилий для решения проблемы. –

+1

@EvanBechtol Я не спускал вниз, но подсказка на кнопке downvote объясняет, когда подходит downvoting: «Этот вопрос не показывает никаких исследований, он неясен или не полезен». Таким образом, отсутствие предварительных исследований ** является веской причиной для понижения. И, откровенно говоря, этот вопрос является пограничным. –

ответ

3

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

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), так как это обычный naming convention в Java.

+1

Вы имели в виду camelCase в своем примечании. –

+0

@ Zéychin Исправлено. – emlai

+0

Следует также отметить, что переменные, объявленные во ВСЕХ КАПИТАЛАХ, в основном считаются константами; они никогда не изменяются во время работы программы. +1 по отклику @zenith –

Смежные вопросы