Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Denetim deyimlerini, örneğin bir For...Next
döngü içinde bir If...Then...Else
blok gibi diğer denetim deyimlerinin içine yerleştirebilirsiniz. Başka bir denetim deyiminin içine yerleştirilen bir denetim deyimi iç içe geçmiş olarak adlandırılır.
İç İçe Yerleştirme Düzeyleri
Visual Basic'teki denetim yapıları istediğiniz sayıda düzeye iç içe yerleştirilebilir. İç içe yapıların her birinin gövdesini girintileyerek daha okunabilir hale getirmek yaygın bir uygulamadır. Tümleşik geliştirme ortamı (IDE) düzenleyicisi bunu otomatik olarak yapar.
Aşağıdaki örnekte yordam sumRows
, matrisin her satırının pozitif öğelerini bir araya ekler.
Public Sub sumRows(ByVal a(,) As Double, ByRef r() As Double)
Dim i, j As Integer
For i = 0 To UBound(a, 1)
r(i) = 0
For j = 0 To UBound(a, 2)
If a(i, j) > 0 Then
r(i) = r(i) + a(i, j)
End If
Next j
Next i
End Sub
Yukarıdaki örnekte, ilk Next
deyim iç For
döngü ve son Next
deyim dış For
döngü kapatır.
Benzer şekilde, iç içe If
ifadelerde, End If
ifadeler otomatik olarak en yakın önceki If
ifadesine uygulanır. İç içe Do
döngüler benzer şekilde çalışır ve en Loop
içteki ifade en Do
içteki ifade ile eşleşmektedir.
Uyarı
Birçok denetim yapısı için, bir anahtar sözcüğü tıklattığınızda, yapıdaki tüm anahtar sözcükler vurgulanır. Örneğin, bir If...Then...Else
yapısında If
'ya tıkladığınızda, yapının içindeki tüm If
, Then
, ElseIf
, Else
ve End If
örnekleri vurgulanır. Bir sonraki veya önceki vurgulanmış anahtar sözcüğüne gitmek için CTRL+SHIFT+AŞAĞI OK veya CTRL+SHIFT+YUKARI OK tuşlarına basın.
Farklı Denetim Yapılarını İç İçe Yerleştirme
Bir tür denetim yapısını başka bir tür içinde iç içe yerleştirebilirsiniz. Aşağıdaki örnekte bir döngü içinde bir With
bloğu ve With
bloğunun içinde iç içe If
bloklar kullanılır.
For Each ctl As System.Windows.Forms.Control In Me.Controls
With ctl
.BackColor = System.Drawing.Color.Yellow
.ForeColor = System.Drawing.Color.Black
If .CanFocus Then
.Text = "Colors changed"
If Not .Focus() Then
' Insert code to process failed focus.
End If
End If
End With
Next ctl
Çakışan Denetim Yapıları
Kontrol yapıları üst üste gelemez. Bu, iç içe yerleştirilmiş herhangi bir yapının bir sonraki en iç yapı içinde tamamen yer alması gerektiği anlamına gelir. Örneğin, aşağıdaki düzenleme geçersizdir çünkü For
döngüsü iç With
blok sonlandırılmadan önce sona ermektedir.
Visual Basic derleyicisi bu tür çakışan denetim yapılarını algılar ve derleme zamanı hatasına işaret eder.