|
Вложенные циклыDate: 2015-10-07; view: 409. Вложение циклов в разветвления и наоборот Реальная процедура на Visual Basic может представлять собой сложную мозаику из циклических и разветвляющихся частей, вложенных друг в друга. Мы уже видели в 6.3, как в оператор цикла были вложены операторы ветвления. В свою очередь в них могут быть вложены операторы цикла, и так до бесконечности. Для тренировки определите, что напечатает следующий фрагмент: Private Sub Command1_Click() For i = 1 To 5 a = 9 If i * i = a Then For k = 5 To 8 Debug.Print k; Next k Else Debug.Print 1997 End If Next i End Sub Здесь внутрь For i = 1 To 5 вложен If i * i = a , а внутрь него вложен For k = 5 To 8. Ответ: 5 6 7 8 1997 Вложенные циклы или цикл внутри цикла - весьма распространенная конструкция при программировании. Поставим себе задачу - напечатать таблицу умножения. В следующем виде:
Начнем с малого - пусть нужно напечатать 1*1=1 Вот фрагмент программы:
Фрагмент 1 a=1 b=1 proizv = a * b Print a, "*" ,b, "=" ,proizv Здесь в операторе Print 5 элементов: * сомножитель a, * символ знака умножения "*", * сомножитель b, * символ "=", * значение произведения proizv
Усложним задачу. Попробуем заставить компьютер напечатать первую строку таблицы:
Замечаем, что здесь нам нужно решить 9 элементарных задач на вычисление произведения, первую из которых решает фрагмент 1. Все они очень похожи и различаются лишь значением второго сомножителя. Таким образом, для решения каждой из 9 задач подошел бы наш фрагмент 1, если бы в нем в операторе b=1 вместо единицы стояла нужная цифра. В данном случае идеально подходит оператор For:
Фрагмент 2 a = 1 For b = 1 To 10 proizv = a * b Print a; "*"; b; "="; proizv;
|