A switch utasítás

 


Teszteléshez, a felsorolt nevek közül, írjuk be egy tetszőleges nevet.
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.
<?php
$teendo = "János";
switch ($teendo) {
	case "Pista":
		print "Pista feladata: Fűnyírás.";
		break;
	case "János":
		print "János feladata: Sövénynyírás.";
		break;		
	case "Ferenc":
		print "Ferenc feladata: Lomtalanítás.";
		break;
	case "Gábor":
		print "Gábor feladata: Kerítés festése.";
		break;
	default:
		print "Ezt adtad meg: $teendo <br /> Ilyen nevű brigádtag nincs! <br /> Vagy nem tudod leírni helyesen a neved?</b> ";
}
?>
Az eredmény:

János feladata: Sövénynyírás.

 


Az üres case - ág

Következő programunkban, négy választási lehetőség van: Három case ág (B, H, GB) és egy default (Holland)
Az első B case ág üresen van, azaz nincs mit kiírni, vagy feldolgozni.
Programunk megtalálja a keresett B azonosítóval rendelkező case ágat, de itt nincs feladata, ezért a
break utasításra ki is lép a switsh utasítási programrészből.

Teszteljük le úgy is, hogy, olyan értéket adunk meg, mely nincs egyetlen case ágban sem, azaz nincs B, H, GB azonosító.

Az üres case - ág
Jelen esetben, a B azonosítóra keresünk rá, 
melynek következménye, hogy nem kapunk eredményt.

<?php
$orszag="B";
switch ($orszag) {
	case "B";
		break;
	case "H";
		echo("Magyar");
		break;
	case "GB";
		echo("Angol");
		break;
	default:
		echo("Holland");
		break;
}
?>
Programunk eredménye:

 


Hibásan felállított feltételek, a case ágban.

Következő példánkban, az lenne a feladat, hogy a versenyzők, pontszám alapján kapják meg a kiértékelést.

Versenyzőnk 75-pontot ért el, mégis csillagos ötöst kapott.
Programunk szerint, ötöst is kaphatna, de mivel az első case ág teljesült, ezért programunk a többi case ággal már nem is
foglakozott, hanem egyszerüen a break utasításra kilépett a switch utasításból.

Versenyzők kiértékelése, az elért pontszám alapján.
<?php
$pontszam = 75;

switch ($pontszam) {
	case $pontszam < 90;
		echo("Csillagos ötöst kaptál");
		break;
	case $pontszam < 80;
		echo("Ötöst kaptál");
		break;
	case $pontszam > 70;
		echo("Négyest kaptál");
		break;
	case $pontszam > 50;
		echo("Hármast kaptál");
		break;
	case $pontszam < 50;
		echo("Kettest kaptál");
		break;
	default:
		echo("Egyest kaptál");
}
?>
Programunk eredménye:

Csillagos ötöst kaptál

 


Mi történik, ha töröljük a break utasításokat?
Programunk minden case ágat megvizsgál, és az ott lévő feladatokat, végrehajtja.
<?php
$pontszam = 75;

switch ($pontszam) {
	case $pontszam < 90;
		echo("Csillagos ötöst kaptál. ");
		
	case $pontszam > 80;
		echo("Ötöst kaptál. ");
		
	case $pontszam > 70;
		echo("Négyest kaptál. ");
		
	case $pontszam > 50;
		echo("Hármast kaptál. ");
		
	case $pontszam < 50;
		echo("Kettest kaptál. ");
		
	default:
		echo("Egyest kaptál. ");
}
?>
Programunk eredménye:

Csillagos ötöst kaptál. Ötöst kaptál. Négyest kaptál. Hármast kaptál. Kettest kaptál. Egyest kaptál.