23
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

Bab4 penyataan kawalan

Embed Size (px)

Citation preview

Page 1: Bab4 penyataan kawalan

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

Page 2: Bab4 penyataan kawalan

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

Page 3: Bab4 penyataan kawalan

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

Page 4: Bab4 penyataan kawalan

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

Page 5: Bab4 penyataan kawalan

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

Page 6: Bab4 penyataan kawalan

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.

Page 7: Bab4 penyataan kawalan

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.

Page 8: Bab4 penyataan kawalan

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

Page 9: Bab4 penyataan kawalan

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

Page 10: Bab4 penyataan kawalan

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

Page 11: Bab4 penyataan kawalan

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

Page 12: Bab4 penyataan kawalan

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"

Page 13: Bab4 penyataan kawalan

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

Page 14: Bab4 penyataan kawalan

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

Page 15: Bab4 penyataan kawalan

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

Page 16: Bab4 penyataan kawalan

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

Page 17: Bab4 penyataan kawalan

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

Page 18: Bab4 penyataan kawalan

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

Page 19: Bab4 penyataan kawalan

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

Page 20: Bab4 penyataan kawalan

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

Page 21: Bab4 penyataan kawalan

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

Page 22: Bab4 penyataan kawalan

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

Page 23: Bab4 penyataan kawalan

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