VISUAL BASIC FOR STATEMENT
Untuk ... Pernyataan berikutnya ( Visual
Basic )
Visual Studio 2013
Versi lain
4 dari 6 dinilai ini bermanfaat - Beri topik ini
[ Dokumentasi ini hanya pratinjau , dan dapat berubah dalam rilis nanti subjek
. Topik kosong termasuk sebagai penampung . ]
Mengulangi sekelompok pernyataan sejumlah tertentu kali .
Untuk kontra [As datatype ] = start Untuk mengakhiri [ Langkah langkah ]
[ Laporan ]
[ Lanjutkan Untuk ]
[ Laporan ]
[ Keluar Untuk ]
[ Laporan ]
Berikutnya [ kontra ]
bagian
bagian
deskripsi
melawan
Diperlukan dalam laporan Untuk . Variabel numerik . Variabel kontrol loop .
Untuk informasi lebih lanjut, lihat Kontra Argumen selanjutnya dalam topik ini
.
datatype
Opsional . Tipe data counter . Untuk informasi lebih lanjut, lihat Kontra
Argumen selanjutnya dalam topik ini .
mulai
Diperlukan . Ekspresi numerik . Nilai awal counter .
akhir
Diperlukan . Ekspresi numerik . Nilai akhir counter .
langkah
Opsional . Ekspresi numerik . Jumlah dimana counter bertambah setiap kali
melalui loop .
pernyataan
Opsional . Satu atau lebih pernyataan antara Untuk dan Next yang menjalankan
jumlah tertentu kali .
Lanjutkan Untuk
Opsional . Transfer kontrol ke iterasi loop berikutnya .
keluar Untuk
Opsional . Transfer mengontrol keluar dari lingkaran Untuk .
berikutnya
Diperlukan . Mengakhiri definisi Untuk lingkaran .
Catatan Catatan
Untuk kata kunci yang digunakan dalam pernyataan ini untuk menentukan kisaran
untuk meja . Anda juga dapat menggunakan kata kunci ini dalam Pernyataan Select
... Case ( Visual Basic ) dan dalam deklarasi array. Untuk informasi lebih
lanjut tentang deklarasi array, lihat Pernyataan Dim ( Visual Basic ) .
Contoh sederhana
Anda menggunakan Untuk ... struktur Next bila Anda ingin mengulang satu set
pernyataan sejumlah set kali .
Dalam contoh berikut , variabel indeks dimulai dengan nilai 1 dan bertambah
dengan setiap iterasi dari loop , berakhir setelah nilai indeks mencapai 5 .
VB
Untuk indeks As Integer = 1 To 5
Debug.Write ( index.ToString & " " )
berikutnya
Debug.WriteLine ( " " )
'Output : 1 2 3 4 5
Dalam contoh berikut , variabel jumlah dimulai pada 2 dan berkurang sebesar
0,25 pada setiap iterasi dari loop , berakhir setelah nilai angka mencapai 0 .
Langkah argumen - .25 mengurangi nilai sebesar 0,25 pada setiap iterasi dari
loop .
VB
Untuk nomor As Double = 2 Untuk 0 Langkah -0.25
Debug.Write ( number.ToString & " " )
berikutnya
Debug.WriteLine ( " " )
'Output : 2 1,75 1,5 1,25 1 0,75 0,5 0,25 0
tip tip
Sementara A ... End While Pernyataan ( Visual Basic ) atau Do ... Pernyataan
loop ( Visual Basic ) bekerja dengan baik ketika Anda tidak tahu sebelumnya
berapa kali untuk menjalankan pernyataan dalam lingkaran . Namun, ketika Anda
berharap untuk menjalankan loop sejumlah tertentu kali, Untuk ... lingkaran
Selanjutnya adalah pilihan yang lebih baik . Anda menentukan jumlah iterasi
ketika Anda pertama kali masuk ke loop .
Loops Nesting
Anda dapat sarang Untuk loop dengan menempatkan satu loop dalam yang lain .
Contoh berikut menunjukkan bersarang Untuk ... struktur berikutnya yang
memiliki nilai langkah yang berbeda . Lingkaran luar menciptakan string untuk
setiap iterasi dari loop . Para decrements loop batin variabel loop counter
untuk setiap iterasi dari loop .
VB
Untuk indexA = 1 Untuk 3
'Buat StringBuilder baru , yang digunakan
'Untuk efisien membangun string .
Sb Dim As New System.Text.StringBuilder ( )
' Menambahkan ke StringBuilder setiap nomor ketiga
' 20-1 menurun .
Untuk indexB = 20 Untuk 1 Langkah -3
sb.Append ( indexB.ToString )
sb.Append ( " " )
Berikutnya indexB
'Tampilkan baris .
Debug.WriteLine ( sb.ToString )
Berikutnya indexA
'Output :
' 20 17 14 11 8 5 2
' 20 17 14 11 8 5 2
' 20 17 14 11 8 5 2
Ketika loop bersarang , setiap loop harus memiliki variabel counter yang unik .
Anda dapat juga sarang berbagai jenis mengontrol struktur dalam satu sama lain
. Untuk informasi lebih lanjut, lihat Bersarang Struktur Control ( Visual Basic
) .
Keluar Untuk dan Lanjutkan Untuk
Exit Untuk Pernyataan segera keluar dari lingkaran ... Untuk selanjutnya dan
kontrol transfer ke pernyataan yang mengikuti pernyataan berikutnya .
The Continue Untuk transfer pernyataan mengontrol langsung ke iterasi
berikutnya dari loop . Untuk informasi lebih lanjut, lihat Lanjutkan Pernyataan
( Visual Basic ) .
Contoh berikut menggambarkan penggunaan Continue Untuk dan Keluar Untuk laporan
.
VB
Untuk indeks As Integer = 1 To 100000
" Jika indeks adalah antara 5 dan 7 , lanjutkan
' Dengan iterasi berikutnya .
Jika indeks > = 5 dan indeks < = 8 Lalu
Lanjutkan Untuk
end If
'Tampilkan indeks .
Debug.Write ( index.ToString & " " )
"Jika indeks 10 , keluar dari loop .
Jika indeks = 10 Lalu
keluar Untuk
end If
berikutnya
Debug.WriteLine ( " " )
'Output : 1 2 3 4 9 10
Anda dapat menempatkan sejumlah Keluar Untuk laporan di For ... Next lingkaran
. Bila dipakai dalam bersarang Untuk ... loop berikutnya , Exit Untuk keluar
dari lingkaran terdalam dan transfer kontrol ke tingkat yang lebih tinggi
berikutnya bersarang .
Keluar Untuk sering digunakan setelah Anda mengevaluasi beberapa kondisi (
misalnya , dalam struktur If ... Then ... Else ) . Anda mungkin ingin
menggunakan Keluar Untuk untuk kondisi berikut :
Melanjutkan untuk iterate tidak perlu atau tidak
mungkin . Sebuah nilai yang salah atau permintaan penghentian mungkin
menciptakan kondisi ini .
Try A ... Menangkap ... Akhirnya pernyataan menangkap
pengecualian . Anda mungkin menggunakan Exit Untuk di ujung Akhirnya blok .
Anda memiliki lingkaran tak berujung , yang merupakan
lingkaran yang bisa menjalankan sejumlah besar atau bahkan tak terbatas kali .
Jika Anda mendeteksi kondisi seperti ini , Anda dapat menggunakan Keluar Untuk
melarikan diri loop . Untuk informasi lebih lanjut, lihat Do ... Pernyataan
loop ( Visual Basic ) .
Pelaksana Teknis
Ketika loop For ... Next dimulai , Visual Basic mengevaluasi awal, akhir , dan
langkah . Visual Basic mengevaluasi nilai-nilai ini hanya pada saat ini dan
kemudian memberikan mulai melawan . Sebelum blok pernyataan berjalan , Visual
Basic membandingkan counter untuk mengakhiri . Jika counter sudah lebih besar
dari nilai akhir ( atau lebih kecil jika step negatif ) , yang berakhir Untuk
lingkaran dan kontrol lolos ke pernyataan yang mengikuti pernyataan berikutnya
. Jika tidak , blok pernyataan berjalan .
Setiap kali Visual Basic bertemu pernyataan depan, kenaikan kontra demi langkah
dan kembali ke Untuk pernyataan. Sekali lagi membandingkan counter untuk
mengakhiri , dan sekali lagi itu baik menjalankan blok atau keluar loop ,
tergantung pada hasil . Proses ini berlanjut sampai counter melewati akhir atau
Keluar Untuk pernyataan ditemui .
Loop tidak berhenti sampai counter telah berlalu akhir . Jika counter sama
dengan akhir , loop terus . Perbandingan yang menentukan apakah akan
menjalankan blok adalah counter < = akhir jika langkah positif dan
counter> = akhir jika step negatif .
Jika Anda mengubah nilai counter sementara di dalam lingkaran , kode Anda
mungkin akan lebih sulit untuk membaca dan debug . Mengubah nilai awal, akhir ,
atau langkah tidak mempengaruhi nilai iterasi yang ditentukan ketika loop
pertama kali masuk .
Jika Anda sarang loop , compiler sinyal kesalahan jika menemukan pernyataan
berikutnya tingkat bersarang luar sebelum pernyataan berikutnya tingkat batin.
Namun , compiler dapat mendeteksi kesalahan ini tumpang tindih hanya jika Anda
tentukan meja di setiap pernyataan berikutnya .
Langkah Argumen
Nilai langkah dapat bersifat positif atau negatif . Parameter ini menentukan
proses lingkaran sesuai dengan tabel berikut :
nilai Langkah
Lingkaran mengeksekusi jika
Positif atau nol
counter < = akhir
negatif
counter> = akhir
Nilai default dari langkah 1 .
kontra Argumen
Tabel berikut menunjukkan apakah kontra mendefinisikan variabel lokal baru yang
scoped ke seluruh Untuk ... lingkaran berikutnya . Penentuan ini tergantung
pada apakah datatype hadir dan apakah counter sudah didefinisikan .
Apakah datatype hadir ?
Apakah kontra sudah didefinisikan ?
Hasil ( apakah kontra mendefinisikan variabel lokal baru yang scoped ke seluruh
Untuk ... lingkaran berikutnya )
tidak
ya
Tidak, karena counter sudah didefinisikan . Jika lingkup counter tidak lokal
untuk prosedur , peringatan waktu kompilasi terjadi .
tidak
tidak
Ya. Tipe data ini disimpulkan dari awal, akhir , dan langkah ekspresi . Untuk
informasi tentang jenis inferensi , lihat Pernyataan Kesimpulan Option dan
Lokal Jenis Inferensi ( Visual Basic ) .
ya
ya
Ya , tapi hanya jika variabel counter yang ada didefinisikan luar prosedur .
Variabel yang tetap terpisah. Jika ruang lingkup variabel counter yang ada
lokal untuk prosedur , kesalahan waktu kompilasi terjadi .
ya
tidak
Ya.
Tipe data counter menentukan jenis iterasi , yang harus menjadi salah satu dari
jenis berikut :
Sebuah Byte , SByte , ushort , Pendek, UInteger ,
Integer , ULong , Long , Decimal , Single, atau Double .
Sebuah pencacahan yang menyatakan dengan menggunakan
Pernyataan Enum ( Visual Basic ) .
Obyek .
Sebuah jenis T yang memiliki operator berikut , dimana
B adalah jenis yang dapat digunakan dalam ekspresi Boolean .
Publik Bersama Operator > = ( op1 Seperti T , OP2
Sebagai T ) Sebagai B
Operator Bersama Masyarakat < = ( op1 Seperti T ,
OP2 Sebagai T ) Sebagai B
Publik Bersama Operator - ( op1 Seperti T , OP2 Sebagai
T ) Sebagai T
Operator Bersama Masyarakat + ( op1 Seperti T , OP2
Sebagai T ) Sebagai T
Anda opsional dapat menentukan variabel counter dalam laporan berikutnya .
Sintaks ini meningkatkan pembacaan program Anda , terutama jika Anda telah
bersarang Untuk loop . Anda harus menentukan variabel yang muncul dalam
pernyataan yang sesuai Untuk .
Awal, akhir , dan langkah ekspresi dapat mengevaluasi untuk semua jenis data
yang melebar dengan jenis meja . Jika Anda menggunakan jenis yang ditetapkan
pengguna untuk counter, Anda mungkin harus menentukan operator konversi CType
untuk mengubah jenis awal, akhir , atau langkah untuk jenis meja .
contoh
Contoh berikut menghapus semua elemen dari daftar generik . Alih-alih For Each
... Pernyataan berikutnya ( Visual Basic ) , misalnya menunjukkan Untuk ...
pernyataan berikutnya yang iterates dalam urutan . Contoh menggunakan teknik
ini karena metode removeAt menyebabkan elemen setelah elemen dihapus untuk
memiliki nilai indeks yang lebih rendah .
VB
Lst Dim As New List (Of Integer ) Dari { 10 , 20 , 30 , 40 }
Untuk indeks As Integer = lst.Count - 1 Untuk 0 Step -1
lst.RemoveAt (indeks )
berikutnya
Debug.WriteLine ( lst.Count.ToString )
'Output : 0
Contoh berikut iterates melalui pencacahan yang dideklarasikan dengan
menggunakan Pernyataan Enum ( Visual Basic ) .
VB
Enum Mamalia Publik
kerbau
Gazelle
luwak
badak
ikan paus
end Enum
Sub ListSomeMammals publik ( )
Untuk mamalia Sebagai Mamalia = Mammals.Gazelle Untuk
Mammals.Rhinoceros
Debug.Write ( mammal.ToString
& " " )
berikutnya
Debug.WriteLine ( " " )
'Output : Gazelle Mongoose Rhinoceros
end Sub
Dalam contoh berikut , parameter pernyataan menggunakan kelas yang memiliki
operator overloads untuk +, - , > = , dan < = operator .
VB
Prajurit Jarak
Masyarakat Nomor Properti ( ) As Double
Public Sub New (nomor ByVal As Double )
Me.Number = jumlah
end Sub
' Tentukan operator overloads untuk mendukung
pernyataan For ... Next.
Operator Bersama Masyarakat + ( ByVal op1 Sebagai Jarak
, ByVal OP2 Sebagai Distance ) Sebagai Jarak
Kembali New Jarak ( op1.Number
+ op2.Number )
akhir Operator
Publik Bersama Operator - ( ByVal op1 Sebagai Jarak ,
ByVal OP2 Sebagai Distance ) Sebagai Jarak
Kembali New Jarak ( op1.Number
- op2.Number )
akhir Operator
Operator Bersama Masyarakat> = ( ByVal op1 Sebagai
Jarak , ByVal OP2 Sebagai Jarak ) Sebagai Boolean
Kembali ( op1.Number > =
op2.Number )
akhir Operator
Operator Bersama Masyarakat < = ( ByVal op1 Sebagai
Jarak , ByVal OP2 Sebagai Jarak ) Sebagai Boolean
Kembali ( op1.Number < =
op2.Number )
akhir Operator
end Class
Sub ListDistances publik ( )
DistFrom Dim Jarak Baru ( 10 )
DistTo Dim Jarak Baru ( 25 )
DistStep Dim Jarak Baru ( 4 )
Untuk dist Sebagai Jarak = distFrom Untuk distTo
Langkah distStep
Debug.Write (
dist.Number.ToString & " " )
berikutnya
Debug.WriteLine ( " " )
'Output : 10 14 18 22
end Sub