Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Зачет по ИСИС.docx
Скачиваний:
1
Добавлен:
21.09.2019
Размер:
49.29 Кб
Скачать

13 Вопрос

Условный оператор

Любой язык программирования держится только на операторах, без них любой язык был бы не языком, а набором тупых слов. Первый оператор у нас будет условный, он наверное самый главный, без него не обойдется ни одна программа.

If Условие Then

Серия 1

Else

Серия 2

End If

ИЛИ

If Условие Then Серия 1

После оператора If(истина) следует условие, а после условия следует ключевое слово Then. Если на месте условия, мы напишем k = 0,то если k = 0, будет выполняется Серия 1; Else(ложь), если k = 1, а не 0,то будет выполнятся Серия 2.В конце всегда пишем End If.

Оператор Select Case

С помощью этого оператора можно заменить условный оператор, это удобнее(т.к. меньше кода надо писать), и я буду рассматривать некоторые программы на 2-ух операторах(Case & IF). Вот так.

Select Case Переменная или выражение

Case Значение 1

Действие

Case Значение 1

Действие

...

Case Else Действие в случае несовпадения End Select

14 Вопрос

Цикл For Each...Next используется при необходимости повтора набора инструкций для каждого элемента коллекции или массива.

Visual Basic вычисляет коллекцию только один раз — перед началом цикла. Если в блоке операторов изменяется element или group, то эти изменения не оказывает влияния на повторение цикла.

Когда переменной element будут присвоены все элементы коллекции, цикл For Each остановится и управление будет передано оператору, следующему за оператором Next.

Если element не был объявлен вне цикла, то его нужно объявить в операторе For Each. Можно объявить тип element явным образом при помощи оператора As, или можно использовать определение типа для назначения типа. В этом случае областью действия element является основная часть цикла. В то же время нельзя определять element и внутри, и снаружи цикла.

Можно дополнительно указать element в инструкции Next. Это повышает удобочитаемость программы, особенно если в ней имеются вложенные циклы For Each. При этом следует указать ту же переменную, что и в соответствующем операторе For Each.

Можно избежать изменения значения element внутри цикла. Это может сделать его более сложным для чтения и отладку кода. Изменение значения group не влияет на коллекцию или ее элементы, которые были определены в начале цикла.

Если код зависит от порядка обхода коллекции, то цикл For Each...Next имеет смысл применять только при известных характеристиках объекта перечислителя, предоставляемого коллекцией. Порядок прохождения определяется не Visual Basic, а методом MoveNext объекта перечислителя. Это означает, что пользователь не может задать, какой элемент должен быть первым записан в element, или какой элемент должен следовать за каким-либо элементом. С помощью другой циклической структуры, например For...Next или Do...Loop, можно добиться более надежных результатов.

Вложенные циклы.

Циклы For Each могут вкладываться друг в друга. При этом каждый цикл должен иметь уникальную переменную element.

Также можно вложить друг в друга различные виды управляющих структур. Дополнительные сведения см. в разделе Вложенные структуры управления (Visual Basic).

Если инструкция Next внешнего уровня вложенности встретилась раньше, чем Next внутреннего уровня, то компилятор сообщает об ошибке. При этом компилятор может обнаружить эту ошибку только в том случае, если в каждой инструкции Next указан element.

Exit For

Оператор Exit for вызывает выход из цикла For…Next и передачу управления на оператору, следующему за Next.

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

Exit For часто используется после оценки некоторого условия, например в структуре If...Then...Else. Можно использовать Exit For при следующих условиях:

Продолжать выполнение итераций не нужно или невозможно. Это может быть вызвано ошибочным значением или запросом на прерывание.

Исключение перехватывается в Try...Catch...Finally. Можно использовать Exit For в конце блока Finally.

Там бесконечный цикл, то есть цикл, которые может быть запущен большое или даже бесконечное количество раз. При обнаружении таких условий для выхода из цикла можно использовать Exit For. Дополнительные сведения см. в разделе Оператор Do...Loop (Visual Basic).

Оператор Continue For передает управление непосредственно следующей итерации цикла.

For Each…Next.

' Create a list of strings by using a

' collection initializer.

Dim lst As New List(Of String) _

From {"abc", "def", "ghi"}

' Iterate through the list.

For Each item As String In lst

Debug.Write(item & " ")

Next

Debug.WriteLine("")

'Output: abc def ghi