Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Цикл For... Next



Позволяет повторить группу операторов заданное число раз.

Его синтаксис:

For счетчик_цикла = начало To конец [Step шаг]

тело цикла

Next [счетчик_цикла]

Здесь счетчик_цикла – числовая переменная. В началевыполнения цикла онапринимает значение, задаваемое числовым выражением начало.(переменная счетчик_цикла не может иметь тип Boolean или быть элементом массива). Числовое выражение конец задает заключительное значение счетчика цикла. Оно вычисляется до начала исполнения тела цикла и не меняется, даже если входящие в него переменные изменяют в теле цикла свои значения. Числовое выражение шаг необязательно. Его значение также вычисляется в начале цикла и прибавляется к счетчику цикла всякий раз, когда завершается выполнение тела цикла и вычисление достигает строки Next [счетчик_цикла]. Если шаг цикла явно не указан, по умолчанию он равен 1. Тело цикла – это последовательность операторов, которая будет выполнена заданное число раз. При каком значении переменной счетчик_цикла происходит завершение цикла, зависит от знака параметра шаг. Если шаг положителен, цикл завершится, когда впервые выполнится условие: счетчик_цикла > конец

Если шаг цикла отрицателен, условие его завершения:

счетчик_цикла < конец.

Это условие проверяется перед началом выполнения цикла, а затем – после каждого прибавления шага к счетчику цикла в операторе Next. Если оно выполнено, управление передается на оператор, следующий за Next, нет – выполняются операторы из тела цикла. Завершить цикл For... Next можно и с помощью оператора Exit For. такие операторы могут быть расположены в тех метах тела цикла, где требуется из него выйти, не дожидаясь выполнения условия завершения.

Пример.

В данном примере три вложенных цикла For... Next использованы для вычисления произведения двух целочисленных матриц, инициализированных случайными числами. Затем результирующая матрица проверяется на наличие в ней нулевого значения:

Public Sub For1()

Dim A(1 To 5, 1 To 5) As Integer

Dim B(1 To 5, 1 To 5) As Integer

Dim C(1 To 5, 1 To 5) As Integer

Dim I As Integer, J As Integer, K As Integer

Dim Res As String

' Инициализация матриц А и В случайными числами в интервале [-10, +10]

VBA.Randomize

For I=1 To 5

For J=1 To 5

'Получение случайного числа Rnd и преобразование его в целое

A(I,J)=Int(21*Rnd)-10

Next J

Next I

For I=1 To 5

For J=1 to 5

B(I,J)=Int(21*Rnd)-10

Next J

Next I

' Вычисление произведения матриц

For I=1 To 5

For J=1 To 5

C(I,J)=0

For K=1 to 5

C(i,j)=C(I,J)+A(I,K)*B(K,J)

Next K

Next J

Next I

Res="No"

C(2,2)=0

'Проверка на нулевое значение

For I=1 To 5

For J=1 To 5

If C(I,J)=0 Then

Debug.Print "Индексы:", I, J

Res="Yes"

exit For

End If

Next J

Next I

Debug.Print Res

End Sub

Следует обратить внимание на оператор выхода Exit For, прекращающий выполнение только внутреннего цикла, так что проверка на ноль будет осуществляться в каждой строке матрицы, независимо от существования нулей в предыдущих строках.

Сделаем еще несколько замечаний по поводу оператора For... Next:

- По окончании цикла счетчик цикла сохраняет свое значение в момент выхода, и его можно использовать, например, для анализа преждевременного выхода из цикла.

- В операторе Next можно не указывать имя переменной. задающей счетчик, - это имя подразумевается по умолчанию, как завершающее последний открытый оператор For. Однако и эту возможность не следует использовать. рекомендуется всегда явно указывать имя счетчика в операторе Next.

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

Public Sub For2()

Dim A(1 To 5) As Integer

Dim i As Integer

For i=5 to 1 step –1

A(i)=i

i=i+1

Next i

End Sub

Обычно попытка изменить значение счетчика цикла в его теле означает, что вместо цикла For... next следовало бы применять цикл другого вида.

Решение игр по свойству оптимальных стратегий, по теореме Шепли-Сноу. Сведение игры к задаче линейного программирования. Нахождение общего решения как грани симплекса допустимых решений

2 E56k3A06TZJcO+xZPnQ40n1Hzef24AyE+o329feiWSTvq9ZTun94ekRjLi/mu1tQkeb4F4ZffEGH Sph2/sA2qEF0msuWaCDN16AkkK4yMXYGsmwNuir1/wXVDwAAAP//AwBQSwECLQAUAAYACAAAACEA toM4kv4AAADhAQAAEwAAAAAAAAAAAAAAAAAAAAAAW0NvbnRlbnRfVHlwZXNdLnhtbFBLAQItABQA BgAIAAAAIQA4/SH/1gAAAJQBAAALAAAAAAAAAAAAAAAAAC8BAABfcmVscy8ucmVsc1BLAQItABQA BgAIAAAAIQB+kD4lVQIAAGAEAAAOAAAAAAAAAAAAAAAAAC4CAABkcnMvZTJvRG9jLnhtbFBLAQIt ABQABgAIAAAAIQDyNcYD3gAAAAkBAAAPAAAAAAAAAAAAAAAAAK8EAABkcnMvZG93bnJldi54bWxQ SwUGAAAAAAQABADzAAAAugUAAAAA "/>





Дата публикования: 2015-02-18; Прочитано: 261 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...