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.