Prije megazabavnih petlji ipak treba odraditi nešto što nisam ugurao u gornji post sa grananjem, a to je još jedna naredba kojom možemo granati naš program. Ime joj je
switch/case, a namjena ista kao i kod if-a: da obilježi određene naredbe koje želimo izvoditi samo ako je ispunjen neki logički uvjet, međutim switch je praktičan tamo gdje if nije.
Konkretno, naći će se situacija kada ćemo imati kontrolnu varijablu koja će služiti za odabir daljnjih procesa koje će program izvesti (primjerice kalkulator sa više mogućih računskih operacija gdje je za svaku potrebno napisati neki kod koji se izvodi ako je ta operacija odabrana) i gdje će među mnogo operacija odlučiti o operaciji koju treba izvesti ovisno o stanju jedne kontrolne varijable.
U takvom slučaju trebalo bi kod if funkcije napisati jedan if za prvo stanje, a onda čitavu vojsku else if-ova za ostala stanja gdje bi svaki put nanovo u zagradama napisali koju to varijablu provjeravamo. Za takve stvari postoji switch. Evo primjera njegove sintakse:
Code:
switch (a)
{
case 1 :
printf("Odabrali ste broj jedan");
break;
case 2 :
printf("Odabrali ste broj dva");
break;
case 3 :
printf("Odabrali ste broj tri");
break;
}
Pa krenimo redom. Odmah na početku kod naredbe switch u zagradi ne stoji uvjet poput if-a, već ovdje upisujemo varijablu koju želimo da program provjerava, a zatim za svaki slučaj njene vrijednosti napišemo jedan "case" blok u kojem navodimo naredbe koje će se izvršiti ukoliko varijabla koju ispitujemo ispunjava taj uvjet u trenutku provjere. Case riječi koje slijede označavaju različite slučajeve koje želimo ispitati. U ovom trenutku zanima nas je li "a" jednak 1, 2, ili 3. Jednostavno za svaki od slučaja napišemo case, razmak, vrijednost od "a" za neki slučaj, te dvotočku, a nakon nje nižemo blok naredbi koje želimo da se izvrše u tom slučaju, a kraj tih naredbi označavamo naredbom "break".
Prvi put se susrećemo sa
breakSnaredbom koja je praktički dio sintakse ove naredbe jer bez nje bi vam se osim npr. slučaja 2 izvršio i slučaj 3. Dakle, break naredbom kažete programu da iskoči iz switch naredbe nakon što obavi sve za taj slučaj. Koristit ćemo je i u petljama za istu namjenu.
Također, nakon svih case-ova obično se (po potrebi, nije nužno) dodaje i
default. Kad napišete default, to je kao da ste upisali jedan case i umjesto vrijednosti varijable koja se ispituje naredili mu da ovo što slijedi čini ako se ne ispuni niti jedan od gornjih uvjeta. Dakle, isto kao što ste pisali case, napišete i default, ovaj put bez ikakve vrijednosti, već samo nakon riječi dodate dvotočku i pišete naredbe, te završavate taj blok ponovo break naredbom. pazite i na to da cijelu switch naredbu, dakle sve caseove i default smjestite u vitičaste zagrade kako biste označili da to sve pripada gore spomenutom switchu.
To bi bila sva mudrost vezana za switch/case. Ako tko uopće prati ovu seriju tutoriala, molim vas da se javite, mogu usput pokazat neki kratki praktičan primjer ili zadatak prije nego krenem(o) na petlje. I naravno, ako ima problema, poteškoća i nedoumica, pitajte.