<<
>>

Операторы цикла

В языке Visual Basic реализовало три разновидности оператора цикла: • For. . .Next; • Do...Loop; • While...Wend. Оператор For.. .Next. Синтаксис: For = To [Step ][] Next [] , , И ДОЛЖНЫ принадлежать числовому множеству значений.
Использование конструкции step позволяет управлять изменением значений переменной цикла. Значение шага изменения может быть как положительным, так и отрицательным. В случае отсутствия конструкции в заголовке цикла по умолчанию принимается значение шага, равное 1. В табл. 2.9 рассмотрено действие конструкции Step на примере простого цикла, увеличивающего значение переменной J (считаем, что начальное значение J равно 0).
Таблица 2.9. Примеры циклов

Для значений и должно выполняться следующее правило: • при отрицательном значении шага > ; • при положительном значении шага < . Если указанные правила в заголовке цикла не выполняются, то не выполняются и операторы тела цикла.

Использование в теле цикла оператора Exit For позволяет программировать альтернативный путь для выхода из цикла. При его выполнении управление немедленно передается первому оператору, следующему за предложением Next, т. е. происходит выход из цикла. Например, в приведенном ниже операторе выход из цикла произойдет, как только очередное вычисленное значение переменной j станет больше 5 (т. е. при J = 7): For I = 1 То 10 J = J*2+l If J > 5 then Exit For Next I Оператор For.. .Next можно использовать для программирования вложенных циклов, например, используя следующую конструкцию: For I = 1 То 10 For J = 1 То 10 For К = 1 То 10 Next К Next J Next I Любая другая последовательность применения операторов Next будет некорректной, например, вложенный оператор, приведенный ниже, вызовет ошибку: For I = 1 То 10 For J = 1 То 10 For К = 1 То 10 Next J Next К Next 1 Если при этом в предложении Next не указывается переменная цикла, то очередное предложение Next считается компилятором относящимся к первому (по направлению вверх) предложению For ...
То. Рассмотрим примеры применения оператора For ... То. 1. Вычислить значение функции у = N1 (у = 1 • 2 ■ 3 •... • N) для N= 100: у = 1; For i = 2 То 100 у = y*i; Next х. 2. Найти максимальный дели'гель I) натурального числа к (за исключением самого к): For i = k \ 2 То 1 Step -1 if k mod i = 0 then D := I Exit For ' Выход из цикла, если делитель найден End If Next 1 Оператор Do.. .Loop предназначен для повторения выполнения тела цикла до тех пор, пока значение некоторого логического выражения истинно или пока это значение не станет истинным. Оператор может быть записан в двух формах: в форме проверки условия до выполнения тела цикла и в форме проверки условия после выполнения тела цикла Синтаксис оператора с проверкой условия до выполнения тела цикла: Do [{While | Until} ][]Loop Синтаксис оператора с проверкой условия после выполнения тела цикла : Do[] Loop [{While I Until} ] Алгоритм выполнения оператора совпадает с алгоритмом выполнения операторов While и Repeat языка Pascal: максимальное число шагов цикла заранее не известно, а изменение значения переменных, входящих в логическое выражение, должно программироваться внутри тела цикла. Необязательное выполнения цикла может быть задано со словом While, и тогда выполняется до тех пор, пока значение условия — истина, или со словом Until, и тогда выполняется до тех пор, пока значение условия — ложь. Необязательность задания условия выполнения цикла объясняется тем, что (как и оператора For.. .Next) может содержать оператор Exit Do, позволяющий завершить цикл принудительно. Рассмотрим опять в качестве примера задачу нахождения максимального делителя (пример 2 предыдущего пункта). В табл. 2.10 приводятся различные варианты алгоритма решения задачи с использованием оператора Do... Loop.

Оператор while... Wend позволяет организовать цикл типа Синтаксис оператора следующий: While [] Wend Рассмотрим пример. Член ряда с номером п для п = 1, 2, 3, ... определяется выражением —. Написать последовательность пх операторов для вычисления суммы членов ряда от первого до (включительно) члена с наименьшим номером, не превосходящего 10'6. S = о N = 1 SN = 1 'Задание начального значения 'для члена ряда (больше, чем 10"6) While SN >= 10"(-6) SN = 1/ N~X S = S + SN N = N + 1 Wend 2.5.

<< | >>
Источник: О. Л. Голицына, Т. Л. Партыка, И. И. Попов. ЯЗЫКИ ПРОГРАММИРОВАНИЯ. 2008

Еще по теме Операторы цикла:

  1. ОШИБКА ОПЕРАТОРА
  2. ДЕЯТЕЛЬНОСТЬ ОПЕРАТОРА
  3. ОПЕРАТОР
  4. ОПЕРАТОР: ПРИЕМ ИНФОРМАЦИИ
  5. Тема 6. Модели жизненного цикла
  6. ОПЕРАТОР: НАДЕЖНОСТЬ
  7. ОПЕРАТОР: ПОМЕХОУСТОЙЧИВОСТЬ
  8. Глава 6. Модели жизненного цикла
  9. ЗОДИАКАЛЬНЫЕ ЗНАКИ И ФАЗЫ ЦИКЛА
  10. 6.2. Примеры моделей жизненного цикла
  11. В.В. Розанов. Из цикла «Эмбрионы»
  12. Профессия оператора: между техникой и искусством
  13. М.Е. Салтыков-Щедрин. Из цикла «Письма к тетеньке»
  14. М.Е. Салтыков-Щедрин. Из цикла «Круглый год»
  15. МЕСТО РАБОЧЕЕ: ПОЛЕ ИНФОРМАЦИОННОЕ
  16. СИСТЕМА ЭРРАТИЧЕСКАЯ
  17. МОДЕЛЬ ОБРАЗНО-КОНЦЕПТУАЛЬНАЯ
  18. Третий этап