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
(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ę
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 );
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.