Modern ismeretek WEB oldalon : Javascript ismertető HTML formátumban

Feltételes utasítások, hurkok

 

Ha akkor, különben : "if..else"
Egyszerű elágazás : ez vagy az
Többszörös választás : "switch"
While ciklus
For ciklus
Do-while ciklus
Break és Continue

JavaScript 1.0Netscape2.0MS IE3.0 Ha akkor, különben : "if..else"

Az if..else utasításpár if tagja lehetővé teszi, hogy egy programmblokk egy bizonyos feltétel teljesülése esetén kerüljön csak végrehjtásra. Opcionálisan megadható az else ág is, mely akkor kerül végrehajtásra, ha az előbbi feltétel nem teljesült.

Szintaxis:

  if (feltétel) utasítások1  [ else utasítások2 ]

Példa:

<html><head><title>Teszt</title>
<script language="JavaScript">
 var jelszo = "Szezám tárulj";
 megadva = window.prompt("Kérem a jelszót :","");
 if(megadva == jelszo)
    document.location.href="barlang.htm";
 else 
 {
    alert("Hibás jelszó!");
    history.back();
 }
</script></head><body>
</body></html>

Magyarázat:

A példában a felhasználó ha helyesen adja meg a jelszót, megnyitjuk számára az utat a barlanghoz, különben visszaküldjük az előző oldalra. Ahhoz, hogy ilyen feltételeket meg tudjunk fogalmazni, általában összehasonlító operátorokat és változókat használunk. Ha több utasítást kívánunk végrehajtani, (mint az else ágban látható), akkor azt egy blokkba kell foglalni a kapcsos zárójelek { és } segítségével.

Megjegyzés:

Az if..else utasítások egymásba ágyazhatók.


JavaScript 1.0Netscape2.0MS IE3.0 Egyszerű elágazás : ez vagy az

Egy egyszerű feltételes elágazás is használható a JavaScript szintakszis szerint, mely az if..else utasításpár alternatívája :

Példa:

<script language="JavaScript">
 var felelet = (evszam == "1514") ? "jó" : "rossz";
 alert("A válaszod : " + felelet );
</script>

Magyarázat:

A feltétel után, melyet zárójelben kell megadni, egy kérdőjel áll. Ha a feltétel teljesül, akkor a kérdőjel után levő, különben a kettőspont után megadott értéket kapja válaszként a változó. Ahhoz, hogy ilyen feltételeket meg tudjunk fogalmazni, általában összehasonlító operátorokat és változókat használunk.


JavaScript 1.2Netscape4.0MS IE4.0 Többszörös választás :"switch"

Szintaxis:

  switch (kifejezés) {
    case cimke1: utasítás1; [break;]
    case cimke2: utasítás2; [break;]
    case cimke3: utasítás3; [break;]
   [default: utasítás;]
 }

A "C" programnyelvből átvett switch szerkezet lehetővé teszi, hogy több (nem csak kettő) lehetőség közül válasszuk ki a kifejezés értékével megegyező cimkét. Ha ilyen nincs, akkor a default (feltételezett) utasítás kerül végrehajtásra. Ha ilyen sincs, akkor a switch { utasítás blokkja } után található első utasításhoz kerül a vezérlés.

Példa:

<script language="JavaScript">
auto = window.prompt("Mi a kedvenc autómárkája ?","");
switch(auto){
 case "audi":
  alert("Vigyázzon rá, sokba került !");
  break;
 case "lada":
  alert("Ez ma már nem nagy szám !");
  break;
 case "suzuki":
  alert("Végre egy magyar termék !");
  break;
 default:
  alert("Nincs róla véleményem");
  break;
} 
</script>

Megjegyzés:

Az opcionális break azt a célt szolgálja, hogy egyezés esetén a végrehajtás ne folytatódjék a switch utasítás blokkjában, hanem ugorja át azokat.


JavaScript 1.0Netscape2.0MS IE3.0 While ciklus

A While egy gyakran használt ciklusszervező utasítás, mely a ciklusmag előtt vizsgálja a feltételt. Az inicializálást a while előtt, a feltétel módosítását a a magban kell megoldani. A ciklus magjában elhelyezett utasítás(ok) addig lesz(nek) végrehajtva, míg egy adott feltétel teljesül.

Példa:

<html><head><title>Teszt</title>
</head><body>
<script language="JavaScript">
 var x,i
 while (i<=12){
   x=i*i;
   document.write( i  + " négyzete " + x + <br>);
   ++i;
 }
</script></body></html> 

JavaScript 1.0Netscape2.0MS IE3.0 For ciklus

Kiértékelődik az inicializáló kifejezés, és amíg a feltétel igaz, végrehajtódnak az utasítások majd a léptetés.

Szintaxis:

 for ([inicializáló kifejezés]; [feltétel]; [ciklusváltozó léptetése]) 
 {
  utasítások
 }

Példa:

<html><head><title>Teszt</title>
</head><body>
<script language="JavaScript">
 for(i = 1; i <= 20; i++)  {
  var x = i * i;
  document.write( i + "négyzete = " + x + <br>);
 }
</script></body></html> 

Egy különleges ciklus a for in, mely objektumok esetében használható.

Példa:

<script language="JavaScript">
<!--
  function Obj_tulajdonsag(Objektum, Obj_Neve)
   {
    var Eredmeny = "";
    for (var tul in Objekt)  {
       Eredmeny += Obj_Neve + "." + tul + " = " + Objektum[tul] + "<br>";
     }
    return  Eredmeny;
   }
// -->
</script> 

Magyarázat:

A példában egy tetszőleges  JavaScript objektum tulajdonságait irathatjuk ki. Az említett tulajdonságokat az Eredmeny karakterláncban gyűjtjük. Ez lesz a függvény visszatérő értéke is.


JavaScript 1.0Netscape4.0MS IE4.0 Do-while ciklus

A do-while ciklus a normális while ciklus variánsa. A különbség a kettő között az, hogy míg a normális while az utasítások végrehajtása előtt vizsgálja a feltétel teljesülését, addig a do-while először a ciklusmagban lévő utasításokat hajtja végre, majd vizsgálja a feltétel teljesülését. Ezáltal az utasítások egyszer mindenképpen végrehajtódnak, még akkor is ha a feltétel már a ciklus indításakor hamis volt..

Példa:

<script language="JavaScript">
var x = 12;
do {
  document.write("<br>x * x = " + (x * x));
  x = x + 1;
 } 
while(x < 10);
</script>

JavaScript 1.0Netscape2.0MS IE3.0 Break és continue

A ciklus egy kritikus faktor JavaScripten belül. Bonyolult feladatok esetében nem mindig egyszerű olyan feltételt állítani, ami biztosítja, hogy a ciklus egyszer véget is ér. Ezért vannak kiegészítő utasítások, mint a break, mellyel a ciklusból ki lehet ugrani, illetve a continue, mely a hurok hátralévő részében lévő utasítások végrehajtását mellőzi .

Példa 1:

<script language="JavaScript">
 var i = 0;
 while (i < 6)
 {
  if (i == 3) break;
  i++;
 }
alert("i = " + i);
</script>

Magyarázat:

Amikor az i eléri a 3-at, a break segítségével a ciklus végrehajtását megszakíthatjuk, annak ellenére, hogy az ciklusváltozó legnagyobb értékének 6-ot adtunk.

Példa 2:

<script language="JavaScript">
 var i = 0;
 while (i < 6) {
  Kiszall :  
  if (i == 3)   {
    alert("Ennyi volt, mert i = " + i);
    break Kiszall;
   }
  i++;
 }
</script>

Magyarázat:

Ez a break ciklusmegszakítási módszer csak a Netscape Version 4.x-től és a MS IE 4.x -től használható. A példában a Kiszall : cimkét definiálunk, mely után kettőspont kell, hogy álljon. A break után kell megadni a cimkét az if ciklusmagban. Így biztosak lehetünk abban, ha i = = 3, akkor a ciklus végrehajtása befejeződik. Elsősorban bonyolult, többszörösen egymásba ágyazott if parancsok esetében ajánlott a használata.

Példa 3:

<script language="JavaScript">
 var i = 0, j = 0;
 while (i < 6) {
  i++;
  if (i == 3) continue;
  j++;
 }
alert("Az i értéke : " + i + " és a j csak : " + j);
</script>

Magyarázat:

A continue kikényszeríti a ciklusváltozó léptetését és új ciklus indítását, ezáltal az előző ciklus hátralévő utasításait nem hajtja végre a program. Így a példában a végén az i értéke 6 és a j csak 5 lesz.

StartVissza egy lapotFel a lap elejéreTovább egy lapot

Készült : 1999-10-27Lengyel Sándor