Jumat, 15 November 2013

visual basic



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

Tidak ada komentar:

Posting Komentar