8. Neka se skripta malo zavrti.

Na casu 04, rekli smo da se u JSL koriste cetiri vrste promenljivih. Do sada smo koristili samo string promenljivu, a danas cemo uvesti celobrojnu "int", cija oznaka potice od "integer". U ove promenljive se mogu smestati samo celobrojne vrednosti. Celobrojne promenljive nakon deklarisanja a pre nego sto im dodelimo vrednost, imaju vrednost nula, koju im je Jaws automatski dodelio. Idemo na primer.

Script PozdravnaPoruka ()
Var
string Poruka,
int Brojac

Let Poruka="Dobar dan"

While Brojac < 3
SayString (Poruka)
Let Brojac = Brojac+1
EndWhile
EndScript 

Ovaj put pazljivo upisite skriptu . To je modifikovana skripta sa cetvrtog casa. U slucaju da pogresite, moze se desiti da cete morati restartovati racunar. Koliko puta ste sada culi pozdravnu poruku? 

Ranije smo rekli vec da rec Var sluzi da kompajleru da do znanja da sledi spisak tipova i imena promenljivih. Do sada smo imali samo jednu promenljivu i ona je igrala ulogu poslednje sa spiska. To je vazno jer iza svake promenljive u spisku mora da stoji zarez a iza poslednje nesme da stoji zarez. Ovo dobro zapamtite, jer kad kompajler nadje zarez, on trazi sledecu promenljivu a kada ga ne nadje, to smatra krajem liste. Ako iza poslednje na listi stavite zarez, dobicete gresku koja kaze da se ocekuje jos jedna promenljiva. Int oznacava da je promenljiva celobrojnog tipa, a "Brojac" je ime koje smo dali nasoj promenljivoj.
Pored reci "int", imamo jos dve nove programske reci, a to su "While" i "EndWhile". Ove dve reci redom predstavljaju pocetak i kraj programske petlje.
Kada program dodje do reci While koja u slobodnom prevodu znaci "sve dok je", uzima se u razmatranje izraz koji sledi, slicno kao i kod If naredbe. Ako je uslov ispunjen, prelazi se na izvrsenje naredbi koje slede sve do EndWhile. Onda program pravi zaokret i preskace ponovo na liniju u kojoj su rec While i uslov. Uslov se ponovo razmatra i ako je ponovo tacan, ili ispunjen, stvar se ponavlja. Kada ce se zavrsiti ovaj programski ringispil? To je upravo najvaznija stvar koju nikada ne smete smetnuti sa uma kada koristite Whil petlje u JSL-u. Izvrsenje redova izmedju While i EndWhile mora, zapamtite mora, da nakon konacnog broja ponavljanja ucini uslov While reda netacnim!
Da pogledamo sta se desava u nasem primeru:
Na pocetku skripte su deklarisane jedna string i jedna int promenljiva. String promenljivoj smo dodelili vrednost "Dobar dan". Celobrojnoj promenljivoj nismo dodelili jos uvek vrednost i ona ima vrednost nula koju joj je standardno dodelio Jaws nakon deklarisanja. Stigli smo do kljucnog reda:

While Brojac < 3

Brojac je za sada 0 i to je manje od 3. Uslov je ispunjen i naredbe izmedju njega i EndWhile ce se izvrsiti. To su sledece dve naredbe:

SayString (Poruka)
Let Brojac = Brojac+1

Prva nam je poznata i pomocu nje ce nasa poruka biti izgovorena. Druga je veoma vazna jer utice na uslov u While redu. 

Let Brojac = Brojac+1

Setite se da je znak jednakosti u ulozi operatora koji vrednost izraza sa desne strane dodeljuje izrazu sa leve njegove strane. Na desnoj strani se nalazi zbir promenljive Brojac koja sada ima vrednost 0 i broja 1. To je dakle 0+1 i iznosi ukupno 1. Posto operator jednako tu vrednost dodeljuje izrazu sa leve strane, to ce nakon izvvrsenja ovog reda promenljiva Brojac dobiti vrednost 1.
Stizemo do EndWhile i vracamo se ponovo na red sa While. Sada se gleda da li je Brojac koji je 1 manji od 3 i posto jeste, ponovo se izvrsavaju nasa dva reda. Izgovara se jos jednom poruka i Brojac postaje 1+1 to jest 2. U sledecem prolasku, 2 je ponovo manje od 3 i redovi se izvrsavaju uz jos jedan izgovor poruke i povecanje Brojaca na 3. Konacno kada se vratimo u red sa While, posmatrani uslov Brojac vise nije manji od 3 i programska While petlja ce biti napustena tako sto ce se preci na izvrsenje prve naredbe koja sledi EndWhile. To je u nasem slucaju EndScript i skripta ce se zavrsiti.
Nesme se zaboraviti da samo izvrsenje sadrzaja petlje mora da utice na uslov iz njenog prvog reda koji mora postati netacan. U suprotnom, petlja bi se vrtela beskonacno, i nas racunar bi se blokirao pa bismo ga morali restartovati.

Eksperimentisite malo, ali oprezno, tako sto cete broj 3 u uslovu da promenite. Nemojte stavljati broj veci od 100 kako nebiste napravili petlju sa isuvise ponavljanja. Naravno, necete cekati da Jaws sve izgovori vec cete pritisnuti "control".

Za sada nam nasa petlja ne radi bas neki interesantan posao sem papagajskog ponavljanja poruke, medjutim uz malo prakse i kombinovanja sa prethodnim znanjem, mogu se dobiti veoma korisne programske petlje. Kada tome dodamo logicke operatore, i svo bogatstvo Jaws funkcija, moci cemo da nateramo Jaws da nam cita i najnepristupacnije aplikacije ili da izvrsi citav niz poslova automatski. 

 "Lekcija 9."


 "Skok na sadrzaj"