6.05. Összehasonlítás - if...else...

Összehasonlítások

A programozási nyelvek általánosan meglévő elágazásai és az ahhoz szükséges összehasonlító operátorokról lesz za alábbiakban szó.

Amikor két értéket összehasonlítunk, akkor az eredmény True vagy False, azaz igaz vagy hamis. Az összehasonlításhoz az alábbi operátorok hazsnálhatók:

  • == - Egyenlő a két oldal?
  • < - A bal oldal kisebb, mint a jobb oldal?
  • > - A bal oldal nagyobb, mint a jobb oldal?
  • <= - A bal oldal kisebb vagy egyenlő, mint a jobb oldal?
  • >= - A bal oldal nagyobb vagy egyenlő, mint a jobb oldal?
  • <> - a két oldal nem egyenlő?
  • === - A két oldal egyenlő és azonos típusú is? Az értékek mindig képviselnek egyúttal logikai értéket is. Tehát péládul az üres string vagy a 0 False értéket is képvisel. Ezzel az összehasonlítással azt is vizsgáljuk, hogy logikai értékeken kívül a típusa is megegyezik-e a két oldalnak.

Példák

Ha az ár nagyobb, mint 100 egység, akkor kiírja, hogy drága.

if (ar > 100) {
  alert('Drága!')
}

Ha a feltétel hamis, akkor kiírja, hogy "keress olcsóbbat"

if (price > 100) {
  alert('Expensive!');
}else {
  alert('Keress olcsóbbat!');
}

Lehet több irányú elágazást i létrehozni az else if segítségével:

if (price > 100) {
  alert('Expensive!')
} else if( price == 100) {
  alert("Pont jó lesz!");
} else {
  alert("Keress olcsóbbat!");
}

Logikai kifejezések összefűzése

  • && - logikai és - (AND ) - Az eredmény true (igaz), ha mind a két oldal true, különben false (hamis)
  • || - logikai vagy ( OR ) - Az eredmény true (igaz), ha a két oldal közül bármelyik true, különben false (hamis)
  • ! - tagadás ( NOT ) - Az eredmény eredménye az eredti állítás ellentére. Ha az eredeti állítás true (igaz) volt, akkor az eredmény false (hamis) és fordítva.

Példák

Ellenőrizzük, hogy ha x nagyobb-e, mint 1 és kisebb-e mint 5

var x = 3;
 
if (x>=1 && x<=5) {
  alert('A szám 1 és 5 között van');
}

Teszteljük, hogy a szám kisebb, mint 10 vagy nagyobb, mint száz!

var x = 66;

if( x < 10 || x > 100 ){
  alert("A szám túl kicsi vagy túl nagy!");
}

Az előbbi kérdést feltehetjük fordítva is. Vagyis beleesik-e a 10 és a 100 közötti intervallumba?

var x = 66;

if( ! ( x < 10 || x > 100 ) ){
  alert( "A szám beleesik a 10 és 100 közötti intervallumba!" );
}

A logikai kifejezések területén rengeteg matematikai lehetőség van. Utalok itt a de Morgan azonosságokra.

Minden változó érték egyúttal logikai értéket is képvisel. Ezt a javascript úgy oldja meg, hogy a feltételek vizsgálatánál logikai típuskonverziót hajt végre a változó értékével kapcsolatban és utána vizsgálja, hogy true vagy false az érték.

var x=33;
if( x ) {
  alert("Az eredmény igaz!");
}