Switch


syntax:
switch(podmienka)
        {
           case hodnota1:príkaz1; break;
           case hodnota2:príkaz2; break;
           case hodnota3:príkaz3; break;
           ...        
           default:príkazn;
           }

Tento príkaz sa používa na podobný účel ako príkaz zložený z viacerých if else. Avšak umožňuje vetvenie na základe jednej podmienky. Príkaz switch vyhodnotí znakový vyraz v zátvorkách a jeho hodnotu porovná postupne s hodnotami uvedenými za kľúčovými slovami case. Pri zhode sa vykoná príkaz uvedený pri danej alternatíve Ak by na konci nebol príkaz break, pokračovalo by sa vo vykonávaní ostatných možností až do konca príkazu switch. Možnosť default zahrňuje všetky ostatné hodnoty výrazu uvedeného ako argument kľúčového slova switch. Nie je povinná no kvôli prehľadnosti sa odporúča.

Vlastnosti:

  • podmienka testovaná vo switch musí byť celočíselného typu teda int
  • každá vetva prepínania muší byť ukončená príkazom break inak sa vykoná nasledujúca vetva
  • vetva default sa vykonáva, ak žiadna z vyššie uvedených vetiev nevyhovuje

 


Vzorový príklad:

Napíšte program, ktorý načíta číslo z klávesnice od 1 do 7 a podľa daného čísla vypíše názov dňa.  


#include <stdio.h>

int main(void

{

      int den;


      printf("zadaj číslo dňa od 1 do 7 ktorý chceš vypísať \t");

     scanf("%d",&den);

     switch (den) 

     {

            case 1:

                  printf("Pondelok");

            break;

            case 2:

                 printf("Utorok");

            break;

            case 3:

                 printf("Streda");

            break;

            case 4:

                printf("Štvrtok");

            break;

            case 5:

                printf("Piatok");

            break;

            case 6:

                printf("Sobota");

            break;

            case 7:

                printf("Nedeľa");

             break;

      }

       return 0;

}

očakávaný výsledok
očakávaný výsledok

Úloha číslo 1: Napíšte program, ktorý testuje načítaný znak zo vstupu. Ak to bude ´a´ alebo ´A´ vypíše slovo: "ANO" ak to bude ´n´ alebo ´N´ vypíše slovo "NIE" inak vypíše: "Nezadal si ani jeden z týchto znakov".
 

#include <stdio.h>

int main(void

{

char znak;


printf("\n Zadaj ľubovoľný znak z klávesnice: ");

scanf("%c",&znak);


switch ( znak )

{

case 'a':

case 'A': 

printf( "\n ANO" ); 

break;

case 'n':

case 'N': 

printf( "\n NIE" ); 

break;

default

printf("Nezadal si ani jeden z týchto znakov"); 

break;

}


return 0;

}

úloha 1
úloha 1

Úloha číslo 2: Napíšte program, ktorý na základe zadaného čísla mesiaca vypíše počet dní v danom mesiaci. Použite switch príkaz na rozhodovanie.

#include <stdio.h>

int main() 

{

int mesiac; 


printf("Zadajte číslo mesiaca (1-12): "); 

scanf("%d", &mesiac); 


switch (mesiac) 

case 1: 

printf("Január má 31 dní.\n"); 

break

case 2: 

printf("Február má 28 alebo 29 dní.\n"); 

break

case 3: 

printf("Marec má 31 dní.\n"); 

break; 

case 4: 

printf("Apríl má 30 dní.\n"); 

break

case 5: 

printf("Máj má 31 dní.\n"); 

break

case 6: 

printf("Jún má 30 dní.\n"); 

break

case 7: 

printf("Júl má 31 dní.\n"); 

break

case 8: 

printf("August má 31 dní.\n"); 

break

case 9: 

printf("September má 30 dní.\n"); 

break

case 10: 

printf("Október má 31 dní.\n"); 

break

case 11: 

printf("November má 30 dní.\n"); 

break

case 12: 

printf("December má 31 dní.\n"); 

break

default

printf("Neplatné číslo mesiaca.\n"); 

break

return 0; 

}

úloha 2
úloha 2

Úloha číslo 3: Napíšte program, ktorý na základe zadaného znaku vypíše informáciu, či je daný znak samohláska alebo spoluhláska.

#include <stdio.h> 

int main() 

char znak; 


printf("Zadajte znak: "); 

scanf(" %c", &znak); 


switch (znak) 

case 'a': 

case 'e': 

case 'i': 

case 'o': 

case 'u': 

case 'y':

case 'A': 

case 'E': 

case 'I': 

case 'O': 

case 'U': 

case 'Y':

printf("Znak je samohláska.\n"); 

break

default

printf("Znak je spoluhláska.\n"); 

break

return 0; 

úloha 3
úloha 3
Vytvorte si webové stránky zdarma! Táto stránka bola vytvorená pomocou služby Webnode. Vytvorte si vlastný web zdarma ešte dnes! Vytvoriť stránky