background image

Warunek wielokrotnego wyboru switch ... case  
Możemy  wykonywać  decyzje  tylko  i  wyłącznie  na  podstawie  wartości  jednej  zmiennej.  Możliwości  instrukcji 
switch są nieporównywalnie mniejsze, jednak używanie jej w niektórych przypadkach jest znacznie korzystniejsze 
dla  szybkości  działania  programu  i  estetyki  kodu  niż  użycie  instrukcji  if.  Stąd  też  warto  przyjrzeć  się  bliżej 
niniejszej instrukcji.  

switch( zmienna ) 

case wartosc_1: 
    //jakiś kod 
    break; 
 case wartosc_2: 
    //jakiś kod 
    break; 
case wartosc_n: 
    //jakiś kod 
    break; 
default: 
    //jakiś kod 
    break; 

 

Słowo kluczowe switch 

Instrukcja switch(...) służy do podejmowania decyzji wyłącznie na podstawie wartości jednej zmiennej. Zmienna ta 
musi  być  typem  podstawowym  i  jednocześnie  typem  całkowitym.  Oznacza  to  w  konsekwencji,  że  wybór 
będziemy mogli dokonywać tylko i wyłącznie na podstawie wartości liczby całkowitej czy też kodu znaku ASCII 

background image

(który również jest liczbą). Zmienną, na której chcemy pracować podajemy w nawiasach, które muszą znaleźć się 
zaraz po wystąpieniu słowa kluczowego switch.  

Dozwolone typy danych 

Jedynymi dozwolonymi typami danych w instrukcji switch są liczby całkowite. Oznacza to, że możemy użyć tylko 
i wyłącznie zmiennych, które są typów takich jak: char, short, int, long, long long. Do tego dochodzi również typ 
wyliczeniowy enum

Błędy kompilacji 

W przypadku instrukcji switch możemy się spotkać np. z następującym błędem:  
error: switch quantity not an integer  
Błąd ten otrzymamy wtedy, gdy zmienna przekazana do instrukcji switch będzie innego typu niż liczba całkowita 
czyli przykładowo będzie typu float.  
 

Słowo kluczowe case 

Skoro już wiemy jak wybrać zmienną tą, która nas interesuje to teraz powinniśmy dowiedzieć się jak w zależności 
od wartości zmiennej wykonać jakiś fragment kodu.  
 

Słowo kluczowe default 

Instrukcja sterująca switch oferuje nam jeszcze jedną instrukcję i jest nią default:. Wejście w kod znajdujący się 
po słowie kluczowym default nastąpi tylko wtedy, gdy żaden z przypadków (case) nie zostanie spełniony.  
 

Słowo kluczowe break 

Słowo  kluczowe  break  oznacza:  przerwij  wykonywanie  obecnej  instrukcji  sterującej.  W  tym  przypadku 
instrukcją sterującą jest switch. Użycie słowa kluczowego break ma bardzo duże znaczenie w instrukcji sterującej 
switch ... case. Informuje ona bowiem kompilator, że dany case się wykonał i program ma już opuścić instrukcję 

background image

sterującą  switch.  Jeśli  zabraknie  słowa  kluczowego  break  to  program wykona wszystkie instrukcje od momentu 
spełnienia warunku aż do samego końca polecenia switch.  
Od momentu gdy został spełniony warunek wykonają się wszystkie instrukcje aż do napotkania słowa kluczowego 
break lub bloku kończącego instrukcję sterującą switch.  
 
 
Zadanie 7.0 
Napisać program z wykorzystaniem switch ... case, który dla podanej liczb: 1, 2, 3 wypisuje je w postaci słownej 
tj. jeden, dwa, trzy 
 
Zadanie 7.1 
Napisać program, w którym będą w zależności od przypadków1, 2, 3  będą wypisywane na ekranie litery: A, B, C  
 
Zadanie 7.2 
Napisz prosty kalkulator dla dwóch liczb, obsługujący cztery działania matematycznie: +-* oraz /.  
 
Zadanie 7.3 
Napisać program, którego wynikiem będzie sprawdzenie, ile wynoszą kolejne potęgi liczby 2, poczynając od 15, 
na 20 kończąc. 
 

Pętla do ... while  

do 

    //... tu powtarzany kod 
;} while ( warunek_konczacy ); 

background image

Kod, który ma być powtarzany umieszczamy wewnątrz bloku instrukcji, który jest poprzedzony słowem 
kluczowym do oraz zakończony słowem kluczowym while. Liczba powtórzeń instrukcji umieszczonych w bloku 
pętli do ... while jest zależna od warunku kończącego pętlę. Pętla do ... while zakończy się gdy warunek 
umieszczony w nawiasach zaokrąglonych zwróci wartość false. Istotną cechą pętli do ... while jest fakt, że kod 
zawarty między słowami kluczowymi do ... while zawsze wykona się co najmniej jeden raz, ponieważ najpierw 
jest wykonywana instrukcja a później dopiero sprawdzany warunek, w odróżnieniu od instrukcji  

 
while

 

 
o składni

 

 

 

 

while (wyrażenie)  

{instrukcja}; 

 
instrukcja nie zostanie wykonana wcale, jeżeli wartość wyrażenia będzie zerowa 
 
Zadanie 7.4 
Napisać program, który wyrysuje tyle małpek @ (za pomocą while), ile tygodni zostało do końca semestru.  
 
Zadanie 7.5 
Napisać program, który będzie wypisywał znaki z klawiatury dopóki nie natrafi na małą literę x (do…while). 
 
Zadanie 7.6 
Napisać  program,  który  będzie  obliczał  średnią  ocen  podawanych  z  klawiatury,  przy  czym  wypisywanie  ocen, 
zostanie przerwane, jeśli wczytane zostanie 0.