Kontakt

KONTAKTIRAJTE NAS

Tel: +381 11 373 2078
Mob: +381 63 83 67 667
E-mail: office@xmedia.rs

Kontakt forma...

Akcija

AKCIJA

• Izrada sajta za Vašu firmu
• BESPLATAN domen
• BESPLATAN hosting
= 299 EUR
= 199 EUR

Detaljnije...

Lekcija 06 - Petlje FOR i DO WHILE UNTIL El. pošta
Napisao Administrator   
četvrtak, 23 oktobar 2008 15:20

 

Opšti oblik petlje FOR je:

 

For i = 1 To n Step x

Blok naredbi

Next

 

U ovom primeru i je brojač, a Step je korak brojanja. Da ne bi mnogo objašnjavali radi lakšeg razumevanja prećićemo na primere.

 

Zadatak: Na formu ubaciti dugme (svojstvo Name - btnIzlistaj, svojstvo Text - Izlistaj) i ListBox (svojstvo Name - Lista) i ubaciti kod kojim će se klikom na dugme u ListBox izlistati brojevi od 1 do 100 i nakon toga dobiti poruku "Brojevi su izlistani."

 

Rešenje:

Private Sub btnIzlistaj_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIzlistaj.Click
Dim i As Integer
For i = 1 To 100
Lista.Items.Add(i)
Next
MsgBox("Brojevi su izlistani.", MsgBoxStyle.Information)
End Sub

 

 

 

Zadatak: Koristićemo prethodni zadatak. Ubaciti kod kojim će se klikom na dugme u ListBox izlistati NEPARNI brojevi od 1 do 1000 i nakon toga dobiti poruku "Brojevi su izlistani."

Rešenje:

Private Sub btnIzlistaj_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIzlistaj.Click
Dim i As Integer
Lista.Items.Clear()
For i = 1 To 1000 Step 2
Lista.Items.Add(i)
Next
MsgBox("Brojevi su izlistani.", MsgBoxStyle.Information)


End Sub

 

Namena: U kodu je korišćena linija Lista.Items.Clear() koja pre izvršenja FOR petlje briše sve članove liste jer bez nje svakim klikom na dugme na postojeću listu dodao bi se novi niz brojeva.

 

 

Zadatak: Koristićemo prethodni zadatak. Ubaciti kod kojim će se klikom na dugme u ListBox izlistati PARNI brojevi od 1 do 1000 i nakon toga dobiti poruku "Brojevi su izlistani."

Rešenje:

Private Sub btnIzlistaj_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIzlistaj.Click
Dim i As Integer
Lista.Items.Clear()
For i = 2 To 1000 Step 2
Lista.Items.Add(i)
Next
MsgBox("Brojevi su izlistani.", MsgBoxStyle.Information)
End Sub

 

Petlja može da se prekine linijom Exit For u određenom trenutku ako je zadovoljen neki uslov.

 

Primer:

 

Private Sub btnIzlistaj_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIzlistaj.Click
Dim i As Integer
Lista.Items.Clear()
For i = 2 To 1000 Step 2
Lista.Items.Add(i)
If i >= 500 Then
Exit For
End If
Next
MsgBox("Brojevi su izlistani.", MsgBoxStyle.Information)
End Sub

 

Objašnjenje: Iako je postaljena petlja koja izlistava parne brojeve od 1 do 1000 prekidom petlje izlistaće se samo parni brojevi od 1 do 500.

 

 

DO WHILE UNTIL

Ima dva oblika: sa izlazom na dnu i sa izlazom na vrhu.

 

Petlja sa izlazom na dnu:

Do
Blok naredbi
Exit Do
Loop While Until

Karakteristika ove petlje je da se jednom mora izvršiti jer se provera uslova za izlazak iz petlje vrši na dnu petlje.

 

Petlja sa izlazom na vrhu:

Do While Until
Blok naredbi
Exit Do
Loop

Karakteristika ove petlje je da se najpre proverava uslov pa se tek onda ulazi u petlju. Zbog te osobine ove petlje se ne moraju ni jednom izvršiti.

 

Uradićemo dva primera vezana za petlju Do While Until.

 

Zadatak: Na postojeću formu dodati dugme (svojstvo Name - btnPrebaci, svojstvoText - Prebaci), TextBox (svojstvo Name txtIzabrano) i jedan ComboBox (svojstvo Name - PadajucaLista) i napisati kod kojim će se klikom na dugme btnIzlistaj u Listu izlistati brojevi od 1 do 100, klikom na neči član liste taj član prikazati u txtIzabrano a klikom na dugme btnPrebaci dodavati izabrani brojevi iz Liste u Padajucu Listu.

Rešenje:

Private Sub btnIzlistaj_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIzlistaj.Click
Dim i As Integer
i = 1
Lista.Items.Clear()
Do
Lista.Items.Add(i)
i = i + 1
Loop While i <= 100
End Sub

Private Sub Lista_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Lista.MouseClick
txtIzabrano.Text = Lista.SelectedItem
End Sub

Private Sub btnPrebaci_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrebaci.Click
PadajucaLista.Items.Add(txtIzabrano.Text)
End Sub

 

isto se dobija i sa kodom:

 

Private Sub btnIzlistaj_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIzlistaj.Click
Dim i As Integer
i = 1
Lista.Items.Clear()
Do While i <= 100
Lista.Items.Add(i)
i = i + 1
Loop
End Sub

Private Sub Lista_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Lista.MouseClick
txtIzabrano.Text = Lista.SelectedItem
End Sub

Private Sub btnPrebaci_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrebaci.Click
PadajucaLista.Items.Add(txtIzabrano.Text)
End Sub

 

Razlika je u liniji DO WHILE.

 

Program treba da izgleda ovako:

 

 

 

 



Isti zadatak sa izlistavanjem brojeva od 1 do 100 sa početka lekcije uradićemo samo što ćemo umesto ListBoxa koristiti TextBox.

Rešenje: Sa forme iskoristićemo dugme btnIzlistaj a postojećem TextBox-u sa nazivom txtIzabrano promenićemo sledeća svojstva:

  • Name - txtLista
  • Multiline - True (Više redova)
  • ScrollBars - Vertical (Vertikalni klizač)

 

Nakon toga unećemo sledeći kod:

 

Private Sub btnIzlistaj_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIzlistaj.Click
Dim i As Integer
i = 1
Do
txtLista.Text += i & vbNewLine
i = i + 1
Loop While i <= 100

End Sub

 

Napomena 1: Linija koda

txtLista.Text += i & vbNewLine

 

je u skraćenom obliku isto što i

txtLista.Text = txtLista.Text & i & vbNewLine

 

Dakle, linija koja se piše kao:

Rezultat = Rezultat + Broj1

 

može skraćeno da se napiše i kao:

Rezultat += Broj1

 

Isto pravilo važi i za ostale operacije (+, -, *, /)

 

Napomena 2: Isti zadatk smo mogli da rešimo korišćenjem reči Until umesto WHILE sa malom izmenom koda:

Private Sub btnIzlistaj_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIzlistaj.Click
Dim i As Integer
i = 1
Do
txtLista.Text += i & vbNewLine
i = i + 1
Loop Until i = 100

End Sub

 

 

 

Zadatak: Uraditi nekoliko primera vezanih za petlje FOR i DO WHILE, i provežbati upotrebu ListBox-a i ComboBox-a.