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:
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>
<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 = default hiba: |
|
|
Keresett, azaz, |
Nem talált adatok: Nem találtak |