BAB EMPAT: PENYATAAN KAWALAN
PERNYATAAN KEPUTUSAN DAN SYARAT
Pernyataan keputusan merupakan struktur kawalan logik yang akan menyelesaikan masalah
berdasarkan suatu syarat yang telah ditentukan. Proses akan dilaksanakan sekiranya ia memenuhi
syarat yang ditetapkan (syarat adalah benar) dan sekiranya syarat adalah palsu, proses yang
sebaliknya akan dilaksanakan. Terdapat tiga bentuk struktur kawalan yang melibatkan pemilihan
iaitu If…Then, If…Then...Else dan Case akan dibincangkan di dalam ini.
Pernyataan If…Then
Ia hanya melibatkan pengujian ke atas satu syarat sahaja dan mempunyai satu pilihan tindakan yang
akan dilaksanakan. Sekiranya syarat adalah benar maka pernyataan selepas Then akan
dilaksanakan.
Bentuk Am:
If <syarat> Then
Tindakan
End If
Tahniah!
berjaya?Palsu Benar
Penyataan Kawalan
Mohd Farid JaafarJSM, FSKTM, UPM
45
Contoh:
If Anda Berjaya Then
Tahniah!!!
End If
Pernyataan If…Then…Else
Struktur kawalan ini melibatkan dua tindakan yang akan dilaksanakan bergantung kepada syarat
yang akan ditentukan sama ada benar atau palsu.
Bentuk Am:
If <syarat> Then
Tindakan 1
Else
Tindakan 2
End If
Contoh:
If cuaca baik Then ‘syarat
Keluar berjalan-jalan ‘dilaksanakan jika benar
Else
Duduk dirumah ‘dilaksanakan jika palsu
End If
Keluar berjalan
Cuaca baik?
Palsu Benar
Duduk dirumah
Penyataan Kawalan
Mohd Farid JaafarJSM, FSKTM, UPM
46
Pernyataan If Bersarang
Terdapat juga syarat yang melebihi dari satu bagi membolehkan suatu tindakan dilaksanakan.
Pernyataan ini dipanggil pemyataan If Bersarang (Nested If).
Bentuk Am:
If <syarat 1> Then
If <syarat 2> Then
Tindakan 1
Else
Tindakan 2
End If
Else
Tindakan 3
End If
Berdasarkan bentuk di atas, pengujian bagi Syarat pertama akan dilakukan terlebih dahulu. Jika
ianya adalah benar, pengujian bagi Syarat kedua akan dilaksanakan. Tetapi, jika pengujian bagi
Syarat1 adalah palsu, maka Tindakan3 yang akan dilaksanakan. Pada pengujian Syarat2, jika
ianya benar, maka Tindakan1 akan dilaksanakan. Jika Palsu, Tindakan2 yang akan dilaksanakan.
IntSuhu>20?
lbIKomen.Caption = "SEJUK!" IntSuhu>40?
lbIKomen.Caption = "PANAS!"
lbIKomen.Caption = "SEDERHANA SAJA!”
Palsu
Palsu
Benar
Benar
Penyataan Kawalan
Mohd Farid JaafarJSM, FSKTM, UPM
47
Contoh:
If cuaca baik Then ‘syarat pertama
If Rajin Then ‘syarat kedua
Keluar naik basikal ‘dilaksanakan jika benar
Else
Keluar naik kereta ‘dilaksanakan jika palsu
End If
Else
Duduk diam-diam ‘dilaksanakan jika palsu
End If
Contoh:
If intSuhu > 20 ThenIf intSuhu > 40 Then
lbIKomen.Caption = "PANAS!"Else
lbIKomen.Caption = "SEDERHANA SAJA!"
End IfElse
lbIKomen.Caption = "SEJUK!"End If
If intSuhu <= 20 ThenlbIKomen.Caption = "SEJUK!"
ElseIf intSuhu > 40 Then
lbIKomen.Caption = "PANAS!"Else
lbIKomen.Caption = "SEDERHANA SAJA!"
End IfEnd If
optLelaki.Value?
txtUmur.Text<21? txtUmur.Text<21?
Tokok 1 pada intLelaki1
Tokok 1 pada intLelaki2
Tokok 1 pada intWanita1
Tokok 1 pada intWanita2
Penyataan Kawalan
Mohd Farid JaafarJSM, FSKTM, UPM
48
Contoh:
If optLelaki.Value = True Then
If Val (txtUmur.Text) < 21 Then
intLelaki1 = intLelaki1 + 1
Else
intLelaki2 = intLelaki2 + 1
End If
Else
If Val (txtUmur.Text) < 21 Then
intWanita1 = intWanita1 + 1
Else
int intWanita2 = int intWanita2 + 1
End If
Syarat
Pengujian bagi pemyataan If adalah berdasarkan 6 operator perbandingan berikut. Keputusan
daripada perbandingan adalah sama ada Benar atau Palsu.
Operator Nilai Contoh
> Lebih besar daripadaVal (txtAmaun.Text) > mcurLimit
frmMain.Tinggi > mcurSaiz
< Lebih kecil daripadaVal(txtJuaIan. Text) < 10000
txtNama.Text < strNama
= Bersamaan dengantxtKatakunci.Text = "101"
optArahanl.Value = True
<> Tidak bersamaan dengantxtKatakunci.Text <> "101"
optArahanl.Value <> True
>=Lebih besar daripada
dan sama dengan
VaI(txtJualan.Text) >= 10000
frmMain.Tinggi >= 500
<=Lebih kecil daripada
dan sama dengantxtNamal.Text <= txtNama2.Text
Penyataan Kawalan
Mohd Farid JaafarJSM, FSKTM, UPM
49
OPERASI PERBANDINGAN NUMERIK
Apabila melakukan operasi perbandingan ke atas numerik, tanda + dan - akan diambil kira.
Contohnya, -20 adalah kurang daripada 10 dan -2 adalah kurang daripada -1. Bagi pengekodan
berikut:
If Val (txtHarga.Text) = curMaksimum Then
Tanda = di atas bermaksud adakah nilai numerik di dalam txtHarga.Text sama dengan nilai yang
disimpan oleh curMaksimum?
Contoh:
intAlpha intBravo intCharlie
5 4 -5
Syarat Keputusan
intAlpha = intBravo Palsu
intCharlie < 0 Benar
intBravo > intAlpha Palsu
intCharlie <= intBravo Benar
intAlpha >= 5 Benar
intAlpha <> intCharlie Benar
Perbandingan String
Perbandingan antara String boleh dilakukan dengan membandingkan setiap aksara (character)
yang terdapat di dalam pembolehubah String. Kaedah untuk menentukan kedudukan aksara di
dalam perwakilan komputer ialah menggunakan ASCII Code (American Standard Code for
Information Interchange). ASCII Code mengandungi kod bagi semua huruf, nombor dan aksara
khas. Berdasarkan jadual ASCII Code, huruf besar lebih kecil dari huruf kecil, nombor lebih kecil
dari huruf dan ’blank space' adalah yang paling kecil.
Penyataan Kawalan
Mohd Farid JaafarJSM, FSKTM, UPM
50
Contoh:
txtPerson1.Text txtPerson2.Text
JOHN JOAN
Sekiranya pernyataan txtPerson1.Text < txtPerson2.Text dilakukan, ia memberikan keputusan
FALSE. Ini kerana A di dalam JOAN lebih rendah kedudukan kodnya dari H di dalam JOHN.
Sekiranya pernyataan txtWordl.Text < txtWord2.Text dilakukan, ia akan memberikan keputusan
True. Apabila satu string pendek dibanding dengan string yang panjang, ia akan membandingkan
kedudukan ruang kosong (blank space) yang terdapat pada string tersebut. Oleh kerana ruang
kosong lebih rendah kedudukan kodnya maka dianggap string tersebut lebih kecil.
lblCar1.Text lblCar2.Text
300ZX Porsche
Sekiranya penyataan lblCarl.Text < lblCar2.Text dilakukan, ia akan memberikan keputusan
True. Nombor 3 adalah lebih kecil kedudukan kod dari huruf P.
txtWord1.Text txtWord2.Text
HOPE HOPELESS
Perbandingan Kandungan Property Text bagi Text Box
Apabila membandingkan Property Text bagi Text Box dengan satu nilai, kita perlu berhati-hati
kerana Property Text boleh bertindak seperti variant. Sekiranya kita menggunakan nilai text box
sebagai string maka ia akan bertindak sebagai string, sekiranya ia sebagai nombor, ia akan
bertindak seperti nombor.
Penyataan Kawalan
Mohd Farid JaafarJSM, FSKTM, UPM
51
ASCII Code Character ASCII Code Character ASCII Code Character
32 Space (blank) 64 @ 96 ‘
33 ! 65 A 97 a
34 “ 66 B 98 b
35 # 67 C 99 c
36 $ 68 D 100 d
37 % 69 E 101 e
38 & 70 F 102 f
39 ‘ 71 G 103 g
40 ( 72 H 104 h
41 ) 73 I 105 i
42 * 74 J 106 j
43 + 75 K 107 k
44 , (koma) 76 L 108 l
45 - 77 M 109 m
46 . 78 N 110 n
47 / 79 O 111 o
48 0 80 P 112 p
49 1 81 Q 113 q
50 2 82 R 114 r
51 3 83 S 115 s
52 4 84 T 116 t
53 5 85 U 117 u
54 6 86 V 118 v
55 7 87 W 119 w
56 8 88 X 120 x
57 9 89 Y 121 y
58 : 90 Z 122 z
59 ; 91 [ 123 {
60 < 92 \ 124 |
61 = 93 ] 125 }
62 > 94 ^ 126 ~
63 ? 95 _ 127 Del
Jadual ASCII Code
Penyataan Kawalan
Mohd Farid JaafarJSM, FSKTM, UPM
52
Untuk memastikan kita mendapat nilai yang terutamanya nombor, fungsi Val boleh
digunakan. Pastikan tiada ruang kosong antara nombor kerana fungsi Val akan menukarkan ruang
kosong kepada tiada nilai (kosong, bukan 0). Contoh:
10 1.12 -> 101.12
Contoh:
txtFirst.Text txtSecond.Text txtFirst.Text > txtSecond.Text Val(txtFirst.Text)>
Val(txtSecond.Text)
1 +1 True False
2 100 True False
+100 -100 False True
0 (blank) True False
Perbandingan Aksara Huruf Besar (Uppercase) dan Huruf Kecil (Lowercase)
Apabila kita membandingkan String, jenis huruf (kecil atau besar) adalah penting. Sebagai
contohnya Y adalah tidak sama dengan y. Salah satu kaedah untuk mengelakkan pengguna
memasukkan kombinasi huruf besar dan kecil ialah menggunakan fungsi UCase atau LCase.
UCase (string)
LCase (string)
Contoh:
txtWord.Text UCase(txtWord.Text) LCase(txtWord.Text)
Basic BASIC basic
PROGRammING PROGRAMMING programming
Robert Jones ROBERT JONES robert jones
hello HELLO Hello
Penyataan Kawalan
Mohd Farid JaafarJSM, FSKTM, UPM
53
Berikut ialah contoh pemilihan syarat menggunakan fungsi UCase:
If UCase(txtOne.Text) = “BASIC” Then
‘Lakukan operasi
End If
Apabila menukarkan kandungan txtOne.Text kepada huruf besar, kita mesti membandingkan
dengan "BASIC" untuk memastikan ianya True.
Syarat Maimuk (Compound Conditions)
Kita boleh menggunakan syarat majmuk untuk menguji lebih dari satu syarat. Syarat majmuk
dibina menggunakan kombinasi syarat dengan operator logik. Operator logik ialah Or, And dan
Not.
Operator Logik Maksud Contoh
And Kedua-dua syarat mesti benar, barulah
pernyataan syarat adalah benar
txtNumber.Text > 0 And _
txtNumber.Text < 10
Or Jika syarat pertama benar atau syarat kedua
benar, maka pernyataan syarat adalah benar
1blNumber.Caption = 1 Or _
lblNumber.Caption = 2
Not Jika syarat adalah benar maka pernyataan
tidak benar
Not lblNumber.Caption = 0
Contoh:
If optMale.Value = True And Val (txtAge.text) < 21 Then
mintMinorMaleCount = mintMinorMaleCount + 1
End If
If optJunior.Value = True Or optSenior.Value = True Then
mintUpperCiassmanCount = mintUpperClassmanCount + 1
End If
Penyataan Kawalan
Mohd Farid JaafarJSM, FSKTM, UPM
54
Apabila menggunakan syarat majmuk, pastikan setiap syarat bagi operator logik adalah lengkap.
Contoh berikut merupakan syarat operator logik yang salah:
optJunior.Value Or optSenior.Value = True
Menggabungkan Penggunaan And dan Or
Syarat majmuk boleh dibina menggunakan beberapa And dan Or. Apabila menggunakan
gabungan And dan Or, pernyataan And akan dilaksanakan dahulu. Bagaimanapun turutan
tersebut boleh ditukar dengan menggunakan parenthesis (), di mana pernyataan di dalam
parenthesis akan dilaksanakan dahulu. Contoh:
If curSale > 1000 Or optDiscount.Value = True And UCase(txtState.Text) <> "CA" Then
‘(Calculate the Discount)
End If
curSales optDiscount.Value UCase(txtState.Text) Condition Evaluates
1500 False CA True
1000 True OH True
1000 True CA False
1500 True NY True
1000 False CA False
Penyataan Kawalan
Mohd Farid JaafarJSM, FSKTM, UPM
55
Pernyataan Select Case
Pernyataan Select Case digunakan bagi menguji beberapa nilai dan lebih mudah digunakan
berbanding dengan pernyataan If tersarang.
Select Case expression
Case constant list
[statement(s)]
[Case constant list
[statement(s)]]
.
.
[Case Else]
[statement(s)]
End Select
Expression biasanya terdiri dari pembolehubah atau property yang akan diuji.
Constant list ialah nilai yang akan dipadankan, mungkin nombor, string, had nilai (range of value)
atau pernyataan bersyarat (relational condition).
Contoh:
Select Case intScore
Case Is >= 100
lblMessagel.Caption = "Cemerlang"
lbIMessage2.Capttion = "Anda sememangnya bijak!"
Case 80 To 99
lblMessagel.Caption = "Bagus"
lbIMessage2.Capttion = "Anda patut berbangga dengan diri awak!"
Case 60 To 79
lblMessage1.Caption = "Sederhana"
lbIMessage2.Capttion = "Tingkatkan usaha anda"
Case Else
lblMessage1.Caption = "Lemah"
Penyataan Kawalan
Mohd Farid JaafarJSM, FSKTM, UPM
56
lbIMessage2.Capttion = "Anda harus berusah lebih gigih"
End Select
**Apabila menggunakan operator hubungan (contoh: Is >= 100), perkataan Is mesti digunakan.
Jika menggunakan had nilai, gunakan perkataan To (contoh: 80 To 99). Sekiranya hendak
menguji nilai String, gunakan quotation marks (" ").
Contoh:
Select Case txtNamaHaiwan.Text
Case “Harimau”
(berikan kod Harimau)
Case “Kucing”
(berikan kod kucing)
Case Else
(berikan mesej “Tiada dalam senarai”)
End Select
Contoh:
'Description: This project calculates the amount due based on the customer selection
‘ and accumulates summary data for the day.
Option Explicit
Dim mcSubtotal As Currency
Dim mcTotal As Currency
Dim mcGrandTotal As Currency
Dim miCustomerCount As Integer
Const cCAPUCINO_PRICE As Currency = 2
Const cESPRESSO_PRICE As Currency = 2.25
Const cLATTE_PRICE As Currency = 1.75
Const cICED_PRICE As Currency = 2.5
Penyataan Kawalan
Mohd Farid JaafarJSM, FSKTM, UPM
57
'Calculate and display the current amounts, add to totals
Private Sub cmdCalculate_Click()
Dim cPrice As Currency
Dim iQuantity As Integer
Dim cTax As Currency
Dim cItemAmount As Currency
Const cTAX_RATE As Currency = 0.08
'Find the price
If optCappuccino.Value = True Then
cPrice = cCAPPUCCINO_PRICE
Elself optESPRESSO_PRICE.Value = True Then
cPrice = cESPRESSO_PRICE
ElseIf optLATTE_PRICE.Value = True Then
cPrice = cLATTE_PRICE
ElseIf optIcedCappuccino.Value = True Or optIcedLatte.Value = True Then
CPrice = cICED_PRICE
Else
MsgBox “Please Make Drink Selection", vbExclamation, "Oops"
End If
‘Add the price multiply quantity to price so far
If IsNumber(txtQuantity.Text) Then
iQuantity = Val(txtQuantity.Text)
cItemAmount = cPrice * iQuantity
mcSubTotal = mcSubtotal + cItemAmount
If chkTax.Value = Checked Then
cTax = mcSubtotal + cTAX_RATE
End If
mcTotal = mcSubtotal + cTax
lblItemAmount. Caption = Format$(cltemAmount, "Currency")
lblSubTotal.Caption = Format$(mcSubtotal, "Currency")
lblTax.Caption = Format$(cTax, "Currency")
lblTotal.Caption = Format$(mcTotal, "Currency")
Else
Penyataan Kawalan
Mohd Farid JaafarJSM, FSKTM, UPM
58
Msgbox "Quantity must be numeric", vbExclamation, "Oops"
txtQuantity.SetFocus
End If
End Sub
Sub cmdClear_Click()
‘Clear appropriate controls
optCappuccino.Value = True 'Make first button selected to begin
optEspresso.V alue = False
optLatte.Value = False
optlcedLatte.Value = False
optlcedCappuccino.Value = False
lblItemAmount.Caption = ""
chkTax.Enabled = False 'Allow change for new order only
With txtQuantity
.Text = "”
.SetFocus
End With
End Sub
Private Sub cmdExit_Click()
‘Terminate the project
End
End Sub
Private Sub cmdNewOrder_Click()
‘Clear the current order and add to totals
cmdClear_Click
IblSubTotal.Caption = “”
IblTax.Caption = “”
'Add to Totals
mcGrandTota! = mcGrandTotal + mcTotal
mcSubtotal = 0
Penyataan Kawalan
Mohd Farid JaafarJSM, FSKTM, UPM
59
mcTotal = 0 'reset for next customer
miCustornerCount = miCustomerCount + 1
'Clear appropriate display items and enable check box
With chkTax
.Enabled = True
.Value = False
End With
End Sub
Private Sub cmdSummary Click()
'Calculate the average and Display the totals
Dim cAverage As Currency
Dim stMessageString As String
Dim stFormattedAvg As String
If miCustomerCount > 0 Then
If mcTotal <> 0 Then
cmdNewOrder_Click 'Make sure last order is counted
End If
cAverage = mcGrandTotal / miCustomerCount
'Format the numbers
stFormattedAvg = Format$(cAverage, “Currency”)
‘Concatenate the massage string
stMessageString = "Number Orders: " & miCustomerCount & vbCrLf & _
"Average Sale: " & stFormattedAvg
MsgBox stMessageString, vbInformation, "Coffee Sales Summary"
Else
MsgBox "No data to summarize", vbExclamation, "Coffee Sales Summary"
End If
End Sub
Penyataan Kawalan
Mohd Farid JaafarJSM, FSKTM, UPM
60
PERNYATAAN ULANGAN
Gegelung (Loops) digunakan untuk mengulang pernyataan berdasarkan jumlah ulangan yang
dikehendaki. Pernyataan ulangan adalah berdasarkan syarat, sekiranya telah dipenuhi, barulah
dibenarkan keluar dari gegelung tersebut Terdapat beberapa jenis gelung seperti Do…Loop,
For…Next, Nested For…Next dan For Each…Next. Setiap perlaksanaan bagi satu gelung
dipanggil sebagai satu lingkaran (iteration).
Do / Loop
Gegelung Do bermula dengan kata kunci Do dan berakhir dengan Loop. Pemyataan akan diulang
sekiranya syarat While adalah benar atau syarat Until adalah benar dan gelung akan berhenti
sekiranya syarat adalah palsu.
Do (While | Until) Condition 'pernyataan di dalam Loop
Loop
Do'pernyataan di dalam Loop
Loop (While | Until} Condition
Pengujian syarat bagi gegelung Do boleh diletakkan di awal gegelung Do atau di akhir gegelung
Do. Sekiranya syarat diletakkan di awal Do, pernyataan di dalam Do tidak akan dilaksanakan
sekiranya syarat tersebut tidak dipenuhi, ia dikenali sebagai pretest. Sekiranya syarat diletakkan
di akhir gegelung Do, pernyataan di dalam gegelung Do akan dilaksanakan sekurang-
kurangnya sekali, ia dikenali sebagai posttest.
Contoh:
Do Until intItemIndex = lstItemIndex.ListCount – 1
‘Pernyataan di dalam loop
Loop
Do While curAmount >= 10 And curAmount <= 20
‘Pernyataan di dalam loop
Loop
Penyataan Kawalan
Mohd Farid JaafarJSM, FSKTM, UPM
61
Do
‘Pernyataan di dalam loop
Loop Until intTotal > 0
Syarat Loop
Pernyataan di dalam Loop
Syarat Loop
Pernyataan di dalam Loop
Syarat Loop
Pernyataan di dalam Loop
Syarat Loop
Pernyataan di dalam Loop
Posttest Loop While
Pretest Loop Until
Pretest Loop While
Pretest Loop Until
Benar
Benar
Benar
Benar
Palsu
Palsu
Palsu
Palsu
Lengkap Loop Lengkap Loop
Lengkap Loop Lengkap Loop
Penyataan Kawalan
Mohd Farid JaafarJSM, FSKTM, UPM
62
For / Next Loop
Gegelung For…Next digunakan untuk membuat ulangan apabila jumlah bilangan ulangan
diketahui. Untuk menggunakan gegelung For, isytiharkan satu pembolehubah yang akan
memegang nilai indeks (Loop Index), biasanya berjenis nombor. Loop Index akan menentukan
bilangan pernyataan di dalam loop yang akan dilaksanakan.
For LoopIndex = InitialValue To TestValue [Step Increment]
'Pemyataan yang akan dilaksanakan
Next [Loopindex]
Loop Index mestilah pembolehubah numerik. Manakala Nilai awal (Initial Value), Test Value
boleh terdiri daripada pemalar tetap, pembolehubah, nilai numerik atau expression. Pilihan Step
digunakan sebagai tambahan nilai kepada Loop Index bagi setiap lingkaran (iteration). Sekiranya
step tidak diletakkan, nilai tambahan dianggap 1.
Carta Alir bagi For / Next Loop
Berikan nilai pembolehubah index
Akhir limit?
Pernyataan di dalam Loop
Tambah Loop index
Palsu
Benar
Penyataan Kawalan
Mohd Farid JaafarJSM, FSKTM, UPM
63
Contoh:
For intindex = 2 To 100 Step 2
For intCount = intStart To intEnding Step intlncrement
For intCounter = 0 To cboCoffeeType.1-istCount –1
For intNumber = (intNumberCorrect - 5) To intTotalPossible
For curRate = .05 To .25 Step .05
For intCountDown = 10 to 0 Step –1
Peningkatan Nilai Secara Negatif atau Secara Unduran
(Negative Increment or Counting Backward)
Nilai negatif juga boleh digunakan pada Step untuk tujuan mengurangkan nilai Loop Index.
Apabila nilai Step adalah negatif, VB akan menguji nilai yang kurang dari test value. Contoh:
For intCount = 10 To 1 Step –1 `Kiraan secara Unduran
Print intCount
Next intCount
Beberapa Contoh Pengaturcaraan yang Lemah
'Loop yang tidak terlaksana
intFinal = 5
For intlndex = 6 To intFinal
'Perlaksanaan pernyataan dalam loop tidak akan dilaksanakan
Next intlndex
'Contoh salah - Penukaran nilai kawalan pembolehubah
intFinal = 10
intIncrease = 2
Penyataan Kawalan
Mohd Farid JaafarJSM, FSKTM, UPM
64
For intlndex = 1 To intFinal Step intIncrease
intFinal = 25
intIncrease = 5
Next intlndex
'Pengaturcaraan yang sangat lemah
For intlndex = 1 To 10 Step 1
intlndex = intlndex + 5
Next intlndex
'Pengaturcaraan yang tidak akan berakhir
For intlndex = 1 To 10 Step 1
intlndex = 1
Next intlndex
Keluar daripada For/Next Loop
Ada ketikanya kita pertu keluar awal sebelum Loop Index sampai ke nilai akhir. VB menyediakan
pernyataan Exit For untuk tujuan ini. Biasanya Exit For adalah sebahagian daripada pemyataan If.
Ia akan menamatkan gelung For dengan segera.
Contoh:
For intLooplndex = 1 To 10
If txtlnput.Text = "” Then 'Tiada nilai input pada textbox
MsgBox "Anda mesti masukkan satu nilai"
Exit for
End If
‘Pernyataan di dalam loop
Next intLoopIndex
Penyataan Kawalan
Mohd Farid JaafarJSM, FSKTM, UPM
65
For / Next Loop Bersarang
Berikut merupakan contoh di mana pernyataan di dalam loop akan dilaksanakan 12 kali bagi
setiap elemen strName.
Dim intRow As Integer
Dim intCol As Integer
For intRow = 1 To 3
For intColumn = 1 To 4
strName (intRow, intColumn) = "”
Next intColumn
Next intRow
For Each / Next
Gegelung For Each…Next biasanya digunakan untuk membina langkauan (stepping) bagi semua
elemen di dalam tatasusunan (array) atau koleksi. Isytiharkan pembolehubah Variant untuk
memegang setiap elemen tatasusunan. Bagi koleksi objek, isytiharkan pembolehubah Variant
atau pembolehubah untuk jenis objek yang khusus.
Di dalam gelung, pembolehubah akan memegang objek atau elemen semasa. Kelebihan
menggunakan For Each…Next ialah kita tidak perlu memanipulasi index atau menguji bilangan
elemen.
Contoh:
For Each VariableName In {ArrayName | CollectionName}
'Pemyataan yang akan dilaksanakan di dalam loop
Next
Penyataan Kawalan
Mohd Farid JaafarJSM, FSKTM, UPM
66
Dim intltem As Variant
For Each intltem In MyArray
Debug.Print intltem
Next
Dim objForm As Form
For Each objForms In Forms
Debug.Print objForm.Name, objForm.Caption
Next