Windows - Kódvezérlés JScript-ben

Javascript suli 3. rész

A mostani részben a JScript operátoraihoz kapcsolódóan bemutatjuk a nyelv precedencia táblázatát, azaz a kifejezések kiértékelésének sorrendjét, majd pedig a kódvezérlési utasításokkal foglalkozunk, a feltételekkel és ciklusokkal.
Operátorok végrehajtási sorrendje
Az előző részben többek között foglalkoztunk a JScript nyelv operátoraival. Most az alábbiakban az utasítások kiértékelése során alkalmazott precedencia táblázatot tekintsük át. Az itt felsorolt utasítások sorrendje szemlélteti, hogy milyen sorrendben értékeli ki az értelmező a kifejezéseket:
Operátor Leírás
. [] () Mező elérés, tömb index, függvényhívás, kifejezés csoportosítás
++ -- - ~ ! delete new typeof void egyoperandusú műveletek, visszaadott adat típus, objektum létrehozás, definiálatlan értékek
* / % Szorzás, osztás, maradékképzés
+ - + Összeadás, kivonás, string összefűzés
<< >> >>> Bit eltolás
< <= > >= instanceof Kisebb, kisebb vagy egyenlő, nagyobb, nagyobb vagy egyenlő, tagja
== != === !== Egyenlőség, egyenlőtlenség, teljes egyenlőség, teljes egyenlőtlenség
& Bitszintű ÉS
^ Bitszintű KIZÁRÓVAGY
| Bitszintű VAGY
&& Logikai ÉS
|| Logikai VAGY
?: Feltétel
= OP= Értékadás, művelet értékadás
, Összetett kiértékelés
A kód folyamatvezérlése
A programkód végrehajtása alapesetben soronként történik. Ha elágazást szeretnénk elhelyezni a kódban, akkor meg kell határoznunk egy logikai kifejezést, melynek eredménye befolyásolni tudja majd a kód futását. A következő négyféle elágazási feltétel közül választhatunk:
  • Egyszerű választási struktúra (if)
  • Dupla választási struktúra (if/else)
  • Soron belüli, három egységből álló operátor ?:
  • Többféle választási struktúra (switch)
Másik típusa a programfolyamat vezérlésének a ciklusok szervezése. Ebből is négyféle áll rendelkezésre:
  • Elöl tesztelő ciklus (while)
  • Hátul tesztelő ciklus (do/while)
  • Egy objektum tulajdonságainak száma szerint fut le (for/in)
  • Számláló ciklus (for)
Példák
if (a=1)
{
a++;
}
Ebben a példában ha az a változó értéke egy, akkor növeli eggyel a változó értékét, ami így kettő lesz. Az if kulcsszó után a logikai kifejezésnek zárójelben kell lennie. Az if utáni utasítás akkor hajtódik végre, ha a logikai kifejezés igaz.
if (a<2 && a>0)
{
a++;
}
else
{
a--;
}
Ez a példa a "kétutas", if-else formulára ad példát. Ha a értéke kisebb kettőnél, és nagyobb nullánál, akkor hozzáad az értékéhez egyet, ellenkező esetben kivon belőle egyet. Annyi a különbség az előző példához képest, hogy az if utáni első utasítás után az else kulcsszó következik, amely után a logikai kifejezés hamis értéke esetén végrehajtandó utasítás áll.
x = (x>1) ? "X nagyobb 1-nél" : "X nem nagyobb 1-nél"
Az egysoros feltételes kifejezés esetén a ? előtti logikai kifejezés kiértékelése után igaz eredmény esetén a ? utáni, hamis esetén a : utáni értéket adja vissza az utasítás.
for(var i = 1; i >= 10; i++) {
j = j + i;
}
A számláló ciklus esetében három paramétert kell megadnunk. Az első a számláló változó deklarálása, értékadása. A második a feltétel, amely ha igaz, akkor befejeződik a ciklus futása. A harmadik paraméter pedig megadja azt a parancsot, amely lefut minden alkalommal a ciklus végéig. Így a példa szerint addig fut le a j értéket i értékével növelő utasítás, amíg az i változó az egy értéktől egyesével el nem jut tízig.
for (tul in obj)
{
window.alert("A tulajdonság: '" + tul + "' értéke: " + obj[tul]);
}
A példa a for/in formula működését mutatja. Az in előtt a tulajdonság változót adjuk meg, míg az in után az objektumot. A ciklus annyiszor fut le, ahány tulajdonsága van az objektumnak, és minden lefutáskor, valamely tulajdonság indexe lesz a tul változóban.
while (a<10)
{
a++;
}
do
{
a++;
}
while (a<10);
A while ciklus addig fut, amíg a kifejezés értéke igaz. A do while ciklus egyszer mindenképpen lefut, és a lefutás után ellenőrzi a kifejezést.
Létezik még kétféle speciális utasítás, amely a kódvezérlésben szerepet játszik. A break utasítás valamennyi ciklusban használható, a cikluson belül. Hatására megszakad a ciklus belső utasításainak végrehajtása, és a ciklus utáni utasítással folytatódik a program. A continue utasítás hatására folytatódik a ciklus végrehajtása, tehát visszaugrik a ciklus elejére a program, és onnan folytatja a futást.

Javascript suli cikksorozat