Иллюстрированный самоучитель по VB.NET

Порно видеочат бесплатныи видеочат        

Иллюстрированный самоучитель по VB.NET


Говоря об управляющих конструкциях, нельзя обойти вниманием команду GoTo. Если перефразировать старую шутку, современные программисты делятся на три группы: те, кто не знает, как пользоваться GoTo, и знать не хочет; те, кто не знает, но переживает по этому поводу; и те, кто умеет ею пользоваться.

Частое использование GoTo приводит к многократным передачам управления и порождает «спагетти-код», который трудно читать и отлаживать. С другой стороны, в некоторые ситуациях применение GoTo делает программу более понятной и логичной — например, если в какой-то ситуации потребовалось выйти сразу из нескольких вложенных циклов. Команда Exit для этого не подходит, поскольку она завершает только текущий цикл.

В данной ситуации вместо Goto можно воспользоваться перехватом исключений (см. главу 7), но некоторые программисты предпочитают классический подход.

Чтобы воспользоваться командой GoTo в VB .NET, необходимо присвоить метку соответствующей строке. Метка начинается в первой позиции строки, ее первым символом является буква, а последним — двоеточие. Старайтесь присваивать меткам содержательные имена. Пример:

Bad-Input:

' Фрагмент, выполняемый при переходе

Предположим, в нашей программе данные вводятся во вложенном цикле For. Чтобы завершить ввод, пользователь вводит ZZZ :

SubMain()

Dim getData As String

Dim i, j As Integer

For i = 1 To 10

For j = 1 To 100

Console.Write("Type the data, hit the Enter key between " & _



"ZZZ to end: ") getData = Console. ReadLine()

If getData = "ZZZ" Then

Goto Bad Input Else

' Обработка данных

End If

Next j

Next i

Exit Sub

BadInput:

Console.WriteLine("Data entry ended at user request")

Console. ReadLine()

End Sub

Выходить из вложенного цикла командой Exit For неудобно — нам пришлось бы писать дополнительный код для выхода из внешнего цикла. Обратите внимание: команда Exi t Sub предотвращает передачу управления помеченному коду после завершения обоих циклов.



Содержание раздела