Има много проблеми с компютърното програмиране, които включват извършване на набор от действия определен брой пъти. Например, програма за средна оценка за пет ученика трябва да подкани потребителя пет пъти да въведе оценка, за да определи средната за класа. Има програмен шаблон, който се справя с тази ситуация: Направете нещо определен брой пъти.

Този шаблон обикновено използва оператора for в изпълнението си, така че ще започнем оттам, преди да стигнем до самия шаблон.

Изявлението for

Операторът for се използва за итерация, когато знаете предварително от колко итерации се нуждае вашата програма. Ето синтактичния шаблон за оператора for (lcv — контролна променлива за цикъл):

за (тип данни lcv = стойност; условие, модифициране-lcv) {
израз(и);
}

В повечето случаи lcv ще бъде цяло число, тъй като използваме променливата, за да преброим броя на повторенията. Ето пример, който показва целите числа от 1 до 10:

for (int i = 1; i <= 10; i++) {
  cout << i << endl;
}

Възможно е да преместите инициализацията на lcv извън оператора for, както в този кодов фрагмент:

int i = 1;
for (; i <= 10; i++) {
  cout << i << endl;
}

Но когато направите това, губите предимството на обхвата на ниво блок, което е част от оператора for. На практика при всяко използване на оператора for, lcv трябва да се инициализира вътре в оператора, така че lcv да е извън обхвата, след като операторът е завършен.

Можете също така да преместите израза за модификация в тялото на оператора, но наистина няма причина да правите това.

Шаблонът на програмата „Направи нещо определен брой пъти“.

Ето простия псевдокод за този шаблон:

Направете следното определен брой пъти:
Извършете някакво действие

Имайки предвид този псевдокод, ето програма, която подканва потребителя да въведе 5 резултата от теста и след това показва средната стойност на резултатите:

int main()
{
    int grade, total = 0;
    const int NUM_GRADES = 5;
    for (int i = 1; i <= NUM_GRADES; i++) {
      cout << "Enter a grade: ";
      cin >> grade;
      total += grade;
    }
    double average = static_cast<double>(total) / NUM_GRADES;
    cout << "The average grade is: " << average << endl;
}

Резултатът от едно изпълнение на тази програма е:

Въведете оценка: 61
Въведете оценка: 71
Въведете оценка: 81
Въведете оценка: 91
Въведете оценка: 100
Средната оценка е: 80.8

В този следващ пример програмата подканва потребителя да въведе 3 температури по Целзий и преобразува температурата във Фаренхайт и показва и двете температури. Ето кода:

int main()
{
    int cel, fahren;
    const int NUM_TEMPS = 3;
    for (int i = 1; i <= NUM_TEMPS; i++) {
     cout << "Enter a Celsius temperature: ";
     cin >> cel;
     fahren = (9.0/5.0) * cel + 32.0;
     cout << cel << " C equals " << fahren << " F" << endl;
    }
}

Ето резултата от едно изпълнение на тази програма:

Въведете температура по Целзий: 12
12 C се равнява на 53 F
Въведете температура по Целзий: -9
-9 C се равнява на 15 F
Въведете температура по Целзий: 22
22 C се равнява на 71 F

Последни мисли

Операторът for се използва, когато знаете предварително от колко итерации на цикъла се нуждае вашата програма. Когато не знаете броя на итерациите предварително, трябва да използвате оператор while или оператор do while.

Този шаблон определено е предназначен за изявление for при неговото прилагане. Можете да използвате оператор while с променлива брояч, но почти всички опитни програмисти биха имплементирали шаблона с оператор for.

Благодаря, че прочетохте и моля, отговорете на тази статия или ми изпратете имейл с вашите коментари и предложения.