Weblap Hová jutunk?

A switch utasítás. 705

Több feltétel ellenőrzése a switch utasítás segítségével

Előfordul, hogy több választási lehetőséget is ellenőrizni kell.

 


 

1.Példa:
Ha a program egyezést talál, akkor végzett, és nincs szükség további vizsgálatra.
A getDay () metódus, visszaadja a hét napjainak számát: (0-tól, 6-ig.)

<script language="JavaScript" type="text/javascript">

switch (new Date().getDay()) {
    case 0:
        nap = "Vasárnap"; document.write(nap);
        break;
    case 1:
        nap = "Hétfő"; document.write(nap);
        break;
    case 2:
        nap = "Kedd"; document.write(nap);
        break;
    case 3:
        nap= "Szerda"; document.write(nap);
        break;
    case 4:
        nap = "Csütörtök"; document.write(nap);
        break;
    case 5:
        nap = "Péntek"; document.write(nap);
        break;
    case 6:
        nap = "Szombat"; document.write(nap);
        break;
}
</script>

Megírhatjuk így is, eredmény ugyan az lesz.

<script language="JavaScript" type="text/javascript">

switch (new Date().getDay()) {
    case 0:  nap = "Vasárnap";      break;
    case 1:  nap = "Hétfő";         break;
    case 2:  nap = "Kedd";          break;
    case 3:  nap = "Szerda";        break;
    case 4:  nap = "Csütörtök";     break;
    case 5:  nap = "Péntek";        break;
    case 6:  nap = "Szombat";       break;
}
document.write("Ma, "+nap+" van");
</script>

Fenti programunk eredménye:

 


 

 

A default:
Minden switch ellenőrzésben elhelyezhetjük, a case meghatározásokat követően.
Feladata, ha a case feltételek közül egyik sem teljesül, akkor itt, meghatározhatjuk, hogy ilyen esetben, mi legyen a következő feladat.

Tetszőleges értéket ellenőrizhetünk, hogy a "switch" utasítás "case" ágaiban általunk megadott értékeknek megfelel, vagy sem.

Példa:
Négyen dolgoznak a brigádban: Pista, János, Ferenc, Gábor,
Munkakezdéskor, mindenki beírja a nevét, és megkapja a feladatát.
Teszteléshez, írjuk be a nevet. (Példában a "Tibor" név szerepel, mely nincs a brigádban.)

<script language="JavaScript" type="text/javascript">
var teendo = "Tibor";
switch (teendo) {
	case "Pista": document.write("Pista feladata: Fűnyírás."); break;
	case "János": document.write("János feladata: Sövénynyírás."); break;		
	case "Ferenc": document.write("Ferenc feladata: Lomtalanítás."); break;
	case "Gábor": document.write("Gábor feladata: Kerítés festése."); break;
   default:
    document.write("Ezt adtad meg: "+teendo+"<br />Ilyen nevű brigádtag nincs!");
}
</script>

A fenti programunk eredmény:

 


 

Az üres case - ág

Meghatározhatunk olyan értéket, melynek bekövetkezésekor a program azonnal kilép.
Ennél a meghatározásnál üresen marad a case ág, és a break utasításra, befejeződik a további feltételek vizsgálata.
Üres case ágat, lehetőleg az első helyen helyezzük el, ezzel is gyorsíthatjuk a programműködési sebességet.

Példánkban lecseréljük az "S" betűt "B" betűre, program nem ír ki semmit, további feltételeket nem ellenőrzi, még a default meghatározás sem teljesül.

<script language="JavaScript" type="text/javascript">
var orszag = "S";
switch (orszag) {
	case "B":
		break;
	case "H":
		document.write("Magyar");
		break;
	case "GB":
		document.write("Angol");
		break;
	default:
		document.write("Ilyen ország, nem szerepel a listánkban.");
		break;
}
</script>


Egy ellenőrző példa.


Ellenőrző számok közül, a kiválasztott tömbben,
mely számok vannak vagy nincsenek

<table class="bemtabla">
<tr> <td colspan="2">
   <h2>Program eredménye:</h2>
   <p> Az "Et-tomb" hossza = <span id="Ettombhossza"></span><br>
         A "mintatomb" hossza = <span id="mintatombhossza"></span></p>
   <p>default hiba:<br> <span id="dhiba">0</span></p>
</td> </tr>
<tr> <td> <p><b>Keresett, azaz,<br> talált adat van?</b><br><br>  <span id="talaltadat"></span></p> </td>
<td> <p>Nem talált adatok:<br> <span id="nemtalaltadat"></span></p> 
        <p>Nem találtak<br>darabszáma= <span id="nemtalaltdarabszam"></span></p></td>
</tr> </table>

<script>
        // Et = Ellenörző számokat tartalmazó tömb, rövid neve.
const Et=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,
40,41,42,43,44,45,46,47,48,49];
const mintatomb=[1,2,3,4,6,7,9,10,11,12,15,16,18,19,20,21,22,25,28,29,30,32,35,36,37,39,41,42,43,45,47,48,49];
   var Eth=Et.length;
   var mintatombh=mintatomb.length;
                    document.getElementById("Ettombhossza").innerHTML = Eth;
                    document.getElementById("mintatombhossza").innerHTML = mintatombh;
					
	// Előkészítünk kettő tömböt, a talált, azaz, van, és a nem találtak begyűjtésére.				 
          var talalt= new Array();
          var nincs= new Array();
    // A "talalt" nevű tömb elemeit, előre feltöltjük üres adattal. Értékük akkor lesz, ha van talált adat.
           for(i=0; i<50; i++) { var ft=' ';   talalt[i]=ft; }
	
var adattext="Űres";

for(i=0; i<mintatombh; i++) {
               var a=mintatomb[i];
   	switch (a) {
            case Et[0]: talalt[0]="van";   break;
            case Et[1]: talalt[1]="van";   break;
            case Et[2]: talalt[2]="van";   break;
            case Et[3]: talalt[3]="van";   break;
            case Et[4]: talalt[4]="van";   break;
            case Et[5]: talalt[5]="van";   break;
            case Et[6]: talalt[6]="van";   break;
            case Et[7]: talalt[7]="van";   break;
            case Et[8]: talalt[8]="van";   break;
            case Et[9]: talalt[9]="van";   break;
            case Et[10]: talalt[10]="van"; break;
            case Et[11]: talalt[11]="van"; break;
            case Et[12]: talalt[12]="van"; break;
            case Et[13]: talalt[13]="van"; break;
            case Et[14]: talalt[14]="van"; break;
            case Et[15]: talalt[15]="van"; break;
            case Et[16]: talalt[16]="van"; break;
            case Et[17]: talalt[17]="van"; break;
            case Et[18]: talalt[18]="van"; break;
            case Et[19]: talalt[19]="van"; break;
            case Et[20]: talalt[20]="van"; break;
            case Et[21]: talalt[21]="van"; break;
            case Et[22]: talalt[22]="van"; break;
            case Et[23]: talalt[23]="van"; break;
            case Et[24]: talalt[24]="van"; break;
            case Et[25]: talalt[25]="van"; break;
            case Et[26]: talalt[26]="van"; break;
            case Et[27]: talalt[27]="van"; break;
            case Et[28]: talalt[28]="van"; break;
            case Et[29]: talalt[29]="van"; break;
            case Et[30]: talalt[30]="van"; break;
            case Et[31]: talalt[31]="van"; break;
            case Et[32]: talalt[32]="van"; break;
            case Et[33]: talalt[33]="van"; break;
            case Et[34]: talalt[34]="van"; break;
            case Et[35]: talalt[35]="van"; break;
            case Et[36]: talalt[36]="van"; break;
            case Et[37]: talalt[37]="van"; break;
            case Et[38]: talalt[38]="van"; break;
            case Et[39]: talalt[39]="van"; break;
            case Et[40]: talalt[40]="van"; break;
            case Et[41]: talalt[41]="van"; break;
            case Et[42]: talalt[42]="van"; break;
            case Et[43]: talalt[43]="van"; break;
            case Et[44]: talalt[44]="van"; break;
            case Et[45]: talalt[45]="van"; break;
            case Et[46]: talalt[46]="van"; break;
            case Et[47]: talalt[47]="van"; break;
            case Et[48]: talalt[48]="van"; break;
            case Et[49]: talalt[49]="van"; break;
               default:  adattext="nincs";
        }
  document.getElementById("dhiba").innerHTML =adattext;
}
// ----------------------------------------------------------------------

// Nem találtak begyűjtése.
  var ns=0; 
  for(i=0; i<50; i++) { var tadat=talalt[i];   if(tadat==" ") { nincs[ns]=i; ns++;}  }

// A "talalt" nevű tömb, adatainak kiíratása.
  for(i=0; i<50; i++) {
      var ta=talalt[i];
	  if(ta!=' ') {
           var talaltadat=talalt[i]+'<br>';
           document.getElementById("talaltadat").innerHTML += i+'='+talaltadat;
	  }
  }
// Nem találtak, "nincs" nevű tömb, adatainak kiíratása.
var nt=0;
  for(i=0; i<50; i++) { var nadat=nincs[i];
	  if(nadat!=undefined && nadat!=0){
	         nt++;
               var nemtalaltadat=nadat+'<br>';
                 document.getElementById("nemtalaltadat").innerHTML +=nemtalaltadat;
	   }
     document.getElementById("nemtalaltdarabszam").innerHTML = nt;
  }

</script>

Fenti program eredménye:

Az "Et-tomb" hossza =
A "minta-tomb" hossza =

default hiba:
0

Keresett, azaz,
talált adat van?



Nem talált adatok:

Nem találtak
darabszáma=