) i, Можливо, крок, з яким змінюється лічильник. Наприклад, в мові Оберон - 2 такий цикл має вигляд:
v:=b TO e BY s DO
... Тіло циклу
END
(тут v - лічильник, b - початкова Значення лічільніка, e - граничне значення лічільніка, s - крок).
Неоднозначне є питання про Значення змінної по завершенні циклу, в якому ця змінна вікорістовувалася як лічильник. Наприклад, ЯКЩО в Програмі на мові Паскаль зустрінеться конструкція увазі:
:=100; i:=0 to 9 do begin
... Тіло циклу;:=i;
вінікає питання: Яке Значення буде в підсумку присвоєно змінної k: 9, 10, 100, может буті, яке-небудь Інше? А ЯКЩО цикл завершитися Дострокове? Відповідь залежався від того, чи збільшується Значення лічільніка после Останньоі ітерації и чи не змінює транслятор це Значення додатково. Ще Одне питання: що буде, ЯКЩО всередіні циклу лічільніку буде явно присвоєно нове значення? Різні мови програмування вірішують ЦІ питання по-різному. У Деяк поведінка лічільніка чітко регламентована. У других, Наприклад, в тому ж Паскаль, стандарт мови НЕ візначає ні кінцевого Значення лічільніка, ні НАСЛІДКІВ его явної Зміни в ціклі, альо НЕ рекомендує змінюваті лічильник явно и використовуват его по завершенні циклу без повторної ініціалізації. Програма на Паскаль, что ігнорує Цю рекомендацію, может давати Різні результати при віконанні на різніх системах та вікорістанні різніх трансляторів.
Радикально це питання вірішене в мові Ада: лічильник вважається описом в заголовку циклу, и поза ним просто не існує. Даже ЯКЩО ім я лічільніка у Програмі Вже вікорістовується, всередіні циклу в якості лічільніка вікорістовується окрема змінна. Лічільніку заборонено явно прісвоюваті Які б то Не було значення, а ВІН может змінюватіся Тільки внутрішнім механізмом оператора циклу. У результаті конструкція
:=100; i in (0 .. 9) loop
... Тіло ціклуloop;:=i;
зовні аналогічна Вищенаведеним циклу на Паскаль, трактується однозначно: змінній k буде присвоєно значенням 100, оскількі змінна i, что вікорістовується поза циклом, що не має ніякого відношення до лічільніка i, Який створюється и змінюється всередіні циклу. Вважається, что подібне відокремлення лічільніка найбільш зручне и безпечне: чи не потрібен окремий описание для нього и Мінімальна ймовірність Випадкове помилок, пов язаних з Випадкове Руйнування зовнішніх по відношенню до циклу змінніх. Если програмісту нужно Включити в готовий код цикл з лічільніком, то ВІН может НЕ перевіряті, чі існує змінна з ім ям, Яку ВІН Вибравши в якості лічільніка, що не додаваті описание нового лічільніка в заголовок відповідної процедури, що не намагатіся використовуват один з тих, что є , альо в Сейчас «вільніх» лічільніків.
Цикл з лічільніком всегда можна записатися як умовний цикл, перед качаном Якого лічільніку прісвоюється Початкове значення, а умів виходе є Досягнення лічільніком кінцевого значення; до тіла циклу при цьом додається оператор Зміни лічільніка на завдань крок. Однак СПЕЦІАЛЬНІ оператора циклу з лічільніком могут ефектівніше транслюватіся, так як формалізованій вигляд такого циклу дозволяє використовув...