while ciklas
While ciklas kartoja nurodytą algoritmą tol kol jam pateikta sąlyga yra teisinga. Kai tik sąlyga tampa neteisinga, ciklas iš karto sustabdomas ir daugiau nebekartojamas.
Svarbu: sąlyga tikrinama, tik tada, kai įvykdomas visas skliausteliuose ( { } ) nurodytas algoritmas.
Code: Select all
new numwhile(num != 100) {num = random_num(1, 100)}
Galimas pavyzdžiui ir toks variantas:
Code: Select all
new numwhile(num < 150) {num++}
do ciklas
Tai yra tas pats kaip ir while ciklas. Jis panaudojamas labai retai. Esminis skirtumas nuo while ciklo yra tas, kad čia pirma įvykdomas algoritmas ir tik tada tikrinama sąlyga ir jei sąlyga teisinga, bus kartojama antrą kartą. Tad su šiuo ciklu turint neteisingą sąlygą, algoritmas bus atliktas mažiausiai vieną kartą.
Code: Select all
new numdo {num++}while(num<100)
for ciklas
For ciklas taip pat turi sąlygą, kaip ir while, bet jis turi dar vieną papildomą funkciją - jis kas kart prie pasirinkto kintamojo prideda po 1.
Code: Select all
new i, skfor(i=1; i<100; i++) {sk++}
1. i priskiriama reikšmė 1.
2. Tikrina, ar i<100.
3. Jei sąlyga teisinga, vykdo algoritmą esantį tarp skliaustelių ( { } ).
4. Prie i prideda 1 (i++).
5. Tikrina ar sąlyga teisinga. Jei taip, vėl leidžia algoritmą.
6. Prie i prideda 1(i++).
...
Ir taip vyksta tol, kol i tampa 100 ir sąlyga tampa nebeteisinga. Pagal šį pavyzdį patikrinę sk reikšmę po ciklo, pamatytume, kad jame yra skaičius 100. Vadinasi ciklas įvyko 100 kartų.
For ciklas dažniausiai naudojamas skaičiavimams, kur reikia patikrinti visus elementus iš eilės. Labai geras pavyzdys būtų masyvas:
Code: Select all
new masyvas[33], ifor(i=0; i<sizeof(masyvas); i++) {masyvas[i] = i}
masyvas[0] = 0
masyvas[1] = 1
masyvas[2] = 2
....
ir taip iki pat masyvo pabaigos (32).
Pastaba: jei for cikle, prieš pradedant, i reikšmė bus 100, viskas teiks, nes ciklas pradėdamas veikti, pats nustato į reikšmę į nurodytą. Kitaip yra su while ciklu. Jis turi tik sąlygą, tai jei sąlygą jau per patį pirmą patikrinimą bus neteisinga, tai ciklas nė karto ir neįvyks.
break ir continue
Taip pat cikluose galima naudoti 2 komandas, kurios nulemia ciklo baigtį.
continue - iškvietus, vykdomas algoritmas nutraukiamas iš karto toje vietoje, kur parašytas žodis continue ir pereinama prie sąlygos tikrinimo.
Code: Select all
new masyvas[33], ifor(i=0; i<sizeof(masyvas); i++) {if(i==5) continuemasyvas[i] = i}
break - visiškai sustabdo vykstantį ciklą.
Code: Select all
new numfor(;;) {if(random_num(1, 100) == 20) break}
for(;;) yra lygiai tas pats kaip i r while(true), tiesiog jei rašysite while(true), kompiliatorius rodys klaidą, dėl to amžinas ciklas pawn kalboje kuriamas su for(;;).
Šis gidas priklauso Amxmodx.lt forumui.
Bet koks šios informacijos platinimas be autoriaus sutikimo yra griežtai draudžiamas.