Помогни ни да направим Uroci.net по - богат! Добави урок

Инструкции за цикли и разклонения на програмите

bubust   трудност:    видян: 10228



Можем да използваме много изрази в Case , както и стрингове:

Select Case intTest

Case 1 To 5, 10 To 15, 21

'Правим нещо полезно

End Select

Ето така също:

Select Case strTest

Case "esh1", "esh2"

msgbox("Found esh 1 or 2")

Case "esh3"

msgbox("Found esh 3")

End Select

Забележки


Select Case могат да бъдат вгнездени. Всеки Select Case трябва да има End Select.

Можете да прекъснете блока с оператор Exit Select. Изпълнява се незабавно End Select.

Пример: Примерът дава съобщението "Between 6 and 8".

Dim Number As Integer = 8

' ...

Select Number   ' Evaluate Number.

 Case 1 To 5   ' Number between 1 and 5, inclusive.

 Debug.WriteLine("Between 1 and 5")

 ' The following is the only Case clause that evaluates to True.

 Case 6, 7, 8   ' Number between 6 and 8.

 Debug.WriteLine("Between 6 and 8")

 Case 9 To 10   ' Number is 9 or 10.

 Debug.WriteLine("Greater than 8")

 Case Else ' Other values.

 Debug.WriteLine("Not between 1 and 10")

End Select



Може да искаме да се изпълни даден блок много пъти, без да знаем колко.
За тази цел можем да използваме цикъл While за да изпълним блока, докато условието стане False. Цикълът ще се изпълнява дотогава, докато условието е True. Общият пример цикли през множество от записи, докато стигне края им.
Цикълът започва с ключови думи Do While. Условието (condition) се проверява, за да се види дали е True преди всяко изпълнение на инструкциите (statements) включително първата итерация.
Do Until се изпълнява докато условието стане True, докато Do While се изпълнява докато условието стане False.
В следващия пример, се прибавя стойност 5 към променливата докато стойността й стане по-малка от 100:

Dim val As Integer = 0

Do While val < 100

Val = val + 5

Loop
Понякога може да искате да прекъснете While цикъла преди условието да стане False. Нека да разширим примера да брои колко пъти ще съберем стойността 5 към променливата, и ако е прибавена 10 пъти, да прекъсваме цикъла. Можете да прекъснете цикъл While по всяко време чрез използване на инструкция Exit Do:
Dim val As Integer = 0

Dim count As Integer = 0

Do While val < 100

val = val + 5

count = count + 1

If count >= 10 Then

Exit Do

End If

Loop

Цикълът While ще спре изпълнение при две условия: когато променливата val стане по-голяма или равна на 100 или когато променливата count стане по-голяма или равна на 10. Можем да не използваме Exit Do ето така:

Dim val As Integer = 0

Dim count As Integer = 0

Do While val < 100 And count < 10

val = val + 5

count = count + 1

Loop

В предишния пример, когато val се инициализира до стойност 100, кодът вътре в цикъла няма да се изпълни. Ако искаме той да се изпълни още веднаж, трябва да използваме другия вариант на цикъл While:

Dim val As Integer = 0

Dim count As Integer = 0

val = val + 5

count = count + 1

Loop Until val > 100 And count >= 10

Пример


Вътрешният Do...Loop се повтаря 10 пъти, прави стойността на флага False, и прекъсва чрез Exit Do. Другият цикъл съществува докато проверява стойността на флага, наречен Check.
Dim Check As Boolean = True

Dim Counter As Integer = 0

Do ' Outer loop.

 Do While Counter < 20   ' Inner loop.

 Counter += 1   ' Increment Counter.

 If Counter = 10 Then   ' If condition is True,

 Check = False   ' Set value of flag to False.

 Exit Do ' Exit inner loop.

 End If

 Loop
Loop Until Check = False   ' Exit outer loop immediately.



Пример


Инструкциите се изпълняват докато условието е True.
Dim Counter As Integer = 0 

While Counter < 20   ' Test value of Counter. 

 Counter += 1   ' Increment Counter. 

End While ' End While loop when Counter > 19.

 Debug.WriteLine (Counter)   ' Prints 20 in the Output window.

Когато е известно колко пъти трябва да се повтори цикълът се използва For... Next Броячът (counter) e числова променлива, използвана за брояч на цикъла, който следи броя на итерациите. Броячът се инициализира на стойност start. Максималната стойност на брояча, преди да спре изпълнението е end. Клаузата «стъпка» Step е опционална. Тя дава с колко да нараства брояча, по подразбиране той се инкрементира с 1. Стойността на step може да е отрицателна, за да се декрементира броячът. В този случай цикълът ще се изпълнява докато броячът не стане по-малък от стойността end. Нека направим пример, в който цикълът For се изпълнява 10 пъти, като променлива Val се увеличава с 5:
Dim I As Integer

Dim val As Integer = 0

For i = 1 To 10

Val = val + 5

Next

След като цикълът спре изпълнението, стойността на променливата val става равна на 50, а на променливата i на 11.

Друга форма на For цикъла е For...Each...Next. Този цикъл се използва с масиви и колекции. Синтаксис:

For Each element In group

[ statements ]

[ Exit For ]

[ statements ]

Next [ element ]

Eлементът (element) трябва да бъде същия тип данни като членът (item) в масива или колекцията.

С group е отбелязан масив или колекция .Пример:

Dim objItem, MyCollection As Object

For Each objItem In MyCollection ' Iterate through items.

If objItem.val = 5 Then

Exit For 'прекъсва цикъла.

End If

Next

Прекъсва се с Exit For.

Можете да вгнездите цикли For...Next един в друг. Всеки цикъл трябва да има уникална променлива counter. Например:
For I As Integer = 1 To 10

 For J As Integer = 1 To 10

 For K As Integer = 1 To 10

 ' Инструкции за опериране над I, J, и K.

 Next K

 Next J

Next I

Пример

Dim Words, Digit As Integer

Dim MyString As String

For Words = 10 To 1 Step -1    ' 10 повторения.

 For Digit = 0 To 9   ' 10 повторения.

 MyString = MyString & CStr(Digit)   ' конвертира число в стринг.

 Next Digit   ' Инкрементира брояча.

 MyString = MyString & " "   ' Добавя празен символ.

Next Words

Пример

Dim Found As Boolean = False

Dim MyCollection As New Collection

For Each MyObject As Object In MyCollection   ' Итерация през елементите.

 If CStr(MyObject.Text) = "Hello" Then   ' Ако Text е  "Hello"

 Found = True   ' Found се установява в True.

 Exit For ' прекъсва цикъла.

 End If

Next



Конструкция With...End With

Пример

Dim AlertLabel As New System.Windows.Forms.Label

 ' ...

Sub AlertUser(ByVal Value As Long)

 With AlertLabel

 If Value = 0 Then

 .ForeColor = Color.Red

 .Font = New Font(.Font, FontStyle.Bold Or FontStyle.Italic)

 Else

 .Forecolor = Color.Black

 .Font = New Font(.Font, FontStyle.Regular)

 End If

 End With
End Sub


Можете да вгнездявате With...End With.
Sub MyInput()

 With Workbooks("Book1").Worksheets("Sheet1").Cells(1, 1)

 .Formula = "=SQRT(50)"

 With .Font

 .Name = "Arial"

 .Bold = True

 .Size = 8

 End With
 End With
End Sub

Пример

With MyLabel

 .Height = 2000

 .Width = 2000

 .Text = "This is MyLabel"

End With

Пример

With MyObject

 .Height = 100   ' Еквивалентно на MyObject.Height = 100.

 .Text = "Hello World"   ' Като MyObject.Text = "Hello World".

 .ForeColor = Color.Green   ' Като MyObject.ForeColor = Color.Green.

 .Font = New Font(.Font, FontStyle.Bold)   ' Като:

' MyObject.Font = New Font(MyObject.Font, FontStyle.Bold).


End With.


Страници: «1 2 3 4

Регистрирайте се, за да добавите коментар


Калдейта ЕООД - © 2003-2010. Всички права запазени.
Препоръчваме: Национален Бизнес | Bomba.bg | IT Новини | Диплома.бг | TRAVEL туризъм | Реферати | AmAm.bg | Иде.ли | Курсови работи | Фото Форум | Spodeli.net | Фото-Култ | Atol.bg | Elmaz.com | MobileBulgaria.com | Казанлък.Com