как добавить все заданные условия в один или два цикла? - PullRequest
0 голосов
/ 03 ноября 2019

, поэтому мне дали эту задачу делать дома и поручили использовать только циклы.

Напишите метод double calcFutureSalary (double curretSalary, int year), который принимает начальную зарплату человека, числогод. Метод рассчитает зарплату через определенное количество лет. Если работник работает менее 3 лет, зарплата увеличивается на 3% каждый год. Если рабочий работает равным более 3 лет, но менее 10 лет, зарплата увеличивается на 5% каждый год. И если рабочий работает равным или более 10 лет. Зарплата увеличивается на 8% каждый год.

Например, если вы хотите проверить зарплату через 12 лет. В первые 2 года заработная плата будет увеличена на 3%, затем в течение 3–9-го года повышение заработной платы на 5%, а в 10–12-м году увеличение заработной платы на 8%.

Дело в том,Я только знаю, как сделать часть этого. Например:

for(int i = 1; i <= year; i++) {
        currentSalary *= 1.03;
    }
        return currentSalary;

Моя проблема в том, что я не знаю, как применять другие условия, используя циклы впоследствии. ПОМОГИТЕ ПОЖАЛУЙСТА.

1 Ответ

0 голосов
/ 03 ноября 2019
for(int i = 1; i <= year && i<=2 ; i++) {
        currentSalary *= 1.03;
    }
for (int i=3 ; i<= year && i<=9 ; i++)
And so on...
return currentSalary;

Вы также можете сделать его менее подверженным ошибкам, не повторяя себя.

int i = 1;    
for(; i <= year && i<=2 ; i++) {
            currentSalary *= 1.03;
        }
for (; i<= year && i<=9 ; i++)
And so on...
return currentSalary;

Вы также можете использовать один отдельный цикл, например:

const int numIntervals = 3;
const int yearIntervals[] = {1,3,10,10000};
const float factors[] = {1.03f,1.05f,1.08f};
for ( int interval = 0 ; interval < numIntervals ; interval++ )
{
  for ( int y = yearIntervals[interval]; y < yearIntervals[interval+1] && y<=year; y++ )
  {
    currentSalary *= factors[interval];
  }
}
return currentSalary;
...