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 If...Then...Else döngü içinde bir For...Next 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 yapısında If...Then...Else'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 For Each 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.