Višestruko grananje u
programskom jeziku C


      Naredba SWITCH
 (skretnica, naredba “češlja”)



           ETŠ "Nikola Tesla" Niš,
                  Milena Krstić
SWITCH naredba
Naredba
SWITCH                                       case     vrednost    :
          switch (      izraz    ){                                         naredba        }

                                             1        default:
                     Kroz ovu granu sme da
                     se prođe samo JEDNOM

     Izraz je celobrojni izraz čija vrednost određuje PRVU naredbu u nizu od koje počinje
      izvršavanje

     Vrednost izraza za koju se izvršava naredba (grana) koja sledi. Jedna grana može
      se izvršavati za veći broj različitih vrednosti izraza. Ispred vrednosti stoji ključna reč
      case, a iza : (dvotačka)

     default ključna reč označava granu koja se izvršava kada vrednost izraza nije
      jednaka nijednoj od prethodno navedenih vrednosti.


                                        ETŠ "Nikola Tesla" Niš,
                                               Milena Krstić
SWITCH naredba
   Naredba SWITCH predstavlja tzv. skretnicu.


                                              Ako je vrednost izraza α izvršavanje
                        izraz
                                               počinje od niza_naredbi1, ako je β od
               α
                                               niza_naredbi2, ...
      niz_nar1      β     def   ω
                                              Ukoliko vrednost izraza nije jednaka
      niz_nar2
                                               nijednoj od navedenih vrednosti α, β, ...
                                               ϖ, tj. ako vrednost izraza ∉ {α, β, … ϖ} ,
         ...
                                               ulazi se u default granu i izvršavanje
                                               počinje nizom_naredbiD
      niz_narD

         ...                                  Izvršavaju se sve naredbe počev od one
                                               određene vrednošću izraza, pa do kraja
      niz_narN                                 naredbe switch. Zbog toga JE BITAN
                                               REDOSLED GRANA.

                                 ETŠ "Nikola Tesla" Niš,
                                        Milena Krstić
SWITCH naredba
                                             Najčešće ćemo default granu
                                              pisati na kraju:

                izraz
                                                   Ako je vrednost izraza α
                                                    radimo niz naredbi 1
     α
 niz_nar1                                          Ako je vrednost izraza β
            β                                       radimo niz naredbi 2
 niz_nar2

    ...
                                                   ...
                 ω

 niz_narN                                          Ako je vrednost izraza ω
                        def                         radimo niz naredbi N
 niz_narD
                                                   Ako nije ništa od navedenog,
                                                    onda radimo niz naredbi D

                              ETŠ "Nikola Tesla" Niš,
                                     Milena Krstić
SWITCH naredba
   Ukoliko u slučaju da vrednost izraza ∉ {α, β, … ϖ} ne treba raditi ništa, default
    grana se izostavlja.




                                                  izraz
                                     α
                          niz_nar1            β           ω

                          niz_nar2

                              ...

                          niz_narN




                                    ETŠ "Nikola Tesla" Niš,
                                           Milena Krstić
SWITCH naredba
   U slučaju da se za više različitih vrednosti izraza treba da obavi ista akcija, više labela
    mogu da stoje jedna iza druge bez naredbi između.



                                                   izraz
                                 α, β, γ
                              niz_nar1         δ
                              niz_nar2

                                  ...              θ, ω

                              niz_narN
                                                           def

                              niz_narD



                                        ETŠ "Nikola Tesla" Niš,
                                               Milena Krstić
SWITCH naredba
   Skretnica se najviše koristi za višestruko grananje, tj. formira se nekoliko grana naredbi od
    kojih se izvršava najviše čime jedna naredba switch zamenjuje više ugnježdenih if naredbi

                                                    switch (izraz)
                                                         {
                    izraz
                                                               case α:    niz_naredbi1;
      α        β               ω         def                              break;
                                                               case β:    niz_naredbi2;
    niz_nar1          ...           niz_narD
                                                                          break;
                                                               ...
                                                               case ω:    niz_naredbiN;
           niz_nar2         niz_narN
                                                                          break;
                                                               default:   niz_naredbiD;
                                                                          break;
                                                         }
                            Naredbom break izlazi se iz naredbe switch na kraju svake od grana.
                            !!! U ovom slučaju redosled navođenja grana JE PROIZVOLJAN

                                         ETŠ "Nikola Tesla" Niš,
                                                Milena Krstić
Primer:
                 Pocetak                                    Korišćenjem SWITCH naredbe
                                                            izračunati i štampati vrednost
                                                            funkcije y(x) za uneti parametar k:
                     k, x
                                                             x + 1,   k =0
                                                             x + 2,   k =1
                                                            
                                                          y=
                      k
                                                             x + 3,   k = 2 ∨ k = 3∨ k = 4
            1
            1
                                                             x + 4,
                                                                      u ostalim slucajevima
  0                         2, 3, 4            default
 y = x+1   y = x+2          y = x+3         y = x+4

                                                               k=1
                                                               x=5
                      y
                                                               y=7
                     Kraj



                                ETŠ "Nikola Tesla" Niš,
                                       Milena Krstić
Primer:
                 Pocetak                                    Korišćenjem SWITCH naredbe
                                                            izračunati i štampati vrednost
                                                            funkcije y(x) za uneti parametar k:
                     k, x
                                                             x + 1,   k =0
                                                             x + 2,   k =1
                                                            
                                                          y=
                      k
                                                             x + 3,   k = 2 ∨ k = 3∨ k = 4
            1                                  10            x + 4,
                                                                      u ostalim slucajevima
  0                         2, 3, 4            default
 y = x+1   y = x+2          y = x+3         y = x+4

                                                               k = 10
                                                               x=5
                      y
                                                               y=9
                     Kraj



                                ETŠ "Nikola Tesla" Niš,
                                       Milena Krstić

Switch naredba algoritam

  • 1.
    Višestruko grananje u programskomjeziku C Naredba SWITCH (skretnica, naredba “češlja”) ETŠ "Nikola Tesla" Niš, Milena Krstić
  • 2.
    SWITCH naredba Naredba SWITCH case vrednost : switch ( izraz ){ naredba } 1 default: Kroz ovu granu sme da se prođe samo JEDNOM  Izraz je celobrojni izraz čija vrednost određuje PRVU naredbu u nizu od koje počinje izvršavanje  Vrednost izraza za koju se izvršava naredba (grana) koja sledi. Jedna grana može se izvršavati za veći broj različitih vrednosti izraza. Ispred vrednosti stoji ključna reč case, a iza : (dvotačka)  default ključna reč označava granu koja se izvršava kada vrednost izraza nije jednaka nijednoj od prethodno navedenih vrednosti. ETŠ "Nikola Tesla" Niš, Milena Krstić
  • 3.
    SWITCH naredba  Naredba SWITCH predstavlja tzv. skretnicu.  Ako je vrednost izraza α izvršavanje izraz počinje od niza_naredbi1, ako je β od α niza_naredbi2, ... niz_nar1 β def ω  Ukoliko vrednost izraza nije jednaka niz_nar2 nijednoj od navedenih vrednosti α, β, ... ϖ, tj. ako vrednost izraza ∉ {α, β, … ϖ} , ... ulazi se u default granu i izvršavanje počinje nizom_naredbiD niz_narD ...  Izvršavaju se sve naredbe počev od one određene vrednošću izraza, pa do kraja niz_narN naredbe switch. Zbog toga JE BITAN REDOSLED GRANA. ETŠ "Nikola Tesla" Niš, Milena Krstić
  • 4.
    SWITCH naredba  Najčešće ćemo default granu pisati na kraju: izraz  Ako je vrednost izraza α radimo niz naredbi 1 α niz_nar1  Ako je vrednost izraza β β radimo niz naredbi 2 niz_nar2 ...  ... ω niz_narN  Ako je vrednost izraza ω def radimo niz naredbi N niz_narD  Ako nije ništa od navedenog, onda radimo niz naredbi D ETŠ "Nikola Tesla" Niš, Milena Krstić
  • 5.
    SWITCH naredba  Ukoliko u slučaju da vrednost izraza ∉ {α, β, … ϖ} ne treba raditi ništa, default grana se izostavlja. izraz α niz_nar1 β ω niz_nar2 ... niz_narN ETŠ "Nikola Tesla" Niš, Milena Krstić
  • 6.
    SWITCH naredba  U slučaju da se za više različitih vrednosti izraza treba da obavi ista akcija, više labela mogu da stoje jedna iza druge bez naredbi između. izraz α, β, γ niz_nar1 δ niz_nar2 ... θ, ω niz_narN def niz_narD ETŠ "Nikola Tesla" Niš, Milena Krstić
  • 7.
    SWITCH naredba  Skretnica se najviše koristi za višestruko grananje, tj. formira se nekoliko grana naredbi od kojih se izvršava najviše čime jedna naredba switch zamenjuje više ugnježdenih if naredbi switch (izraz) { izraz case α: niz_naredbi1; α β ω def break; case β: niz_naredbi2; niz_nar1 ... niz_narD break; ... case ω: niz_naredbiN; niz_nar2 niz_narN break; default: niz_naredbiD; break; } Naredbom break izlazi se iz naredbe switch na kraju svake od grana. !!! U ovom slučaju redosled navođenja grana JE PROIZVOLJAN ETŠ "Nikola Tesla" Niš, Milena Krstić
  • 8.
    Primer: Pocetak Korišćenjem SWITCH naredbe izračunati i štampati vrednost funkcije y(x) za uneti parametar k: k, x  x + 1, k =0  x + 2, k =1  y= k  x + 3, k = 2 ∨ k = 3∨ k = 4 1 1  x + 4,  u ostalim slucajevima 0 2, 3, 4 default y = x+1 y = x+2 y = x+3 y = x+4 k=1 x=5 y y=7 Kraj ETŠ "Nikola Tesla" Niš, Milena Krstić
  • 9.
    Primer: Pocetak Korišćenjem SWITCH naredbe izračunati i štampati vrednost funkcije y(x) za uneti parametar k: k, x  x + 1, k =0  x + 2, k =1  y= k  x + 3, k = 2 ∨ k = 3∨ k = 4 1 10  x + 4,  u ostalim slucajevima 0 2, 3, 4 default y = x+1 y = x+2 y = x+3 y = x+4 k = 10 x=5 y y=9 Kraj ETŠ "Nikola Tesla" Niš, Milena Krstić