Instrukcja switch

Transkrypt

Instrukcja switch
Instrukcja switch ( przełącznik)
( instrukcja wyboru pozwala na wykonywanie jednego z wielu możliwych ciągów instrukcji.
Wybór uzależniony jest od wyrażenia zawartego w tej instrukcji.)
W- wyrażenie
W1 wartość1
Składnia instrukcji switch. Obliczane jest wyrażenie umieszczone w nawiasie przy słowie switch
switch (wyrażenie)
{
case wart1:
instr1;
break;
//sytuacja
//przerwij
case wart2 :
instr2 ;
break ;
…
default :
//jeśli żadna wartość instrukcji nie
jest równa wyrażeniu, to wówczas
wykonywana jest instrukcja I
przypisana do etykiety default
instr I ;
break ;
}
Jeśli jego wartość odpowiada którejś z wartości podanej w jednej z
etykiet case , wówczas wykonywane są instrukcje począwszy od tej
etykiety.
Wykonywanie ich kończy się po napotkaniu instrukcji break.
Powoduje to wyskok z instrukcji switch - czyli jakby wyjście poza jej
dolną klamrę.
Jeśli wartość wyrażenia nie zgadza się z żadną z wartości podanych
przy etykietach case, wówczas wykonują się instrukcje umieszczone po
etykiecie default.
U nas etykieta ta znajduje się na końcu instrukcji switch, jednak może
być w dowolnym miejscu, nawet na samym jej początku. Co więcej,
Etykiety default może nie być wcale. Jeśli wartość wyrażenia nie
zgadza się z żadną z wartości przy etykietach case, a etykiety default nie
ma wcale, wówczas opuszcza się instrukcję switch nie wykonując
niczego.
Przykłady: (pozostałe w dev c++)
P1
switch(nr)
{
case 3 : cout << " *" ;
case 2 : cout << "-" ;
case 1 : cout <<" ! " ;
break ;
}// co zostanie wyświetlone?? 
Zad 1 Napisz program, który dla wprowadzonej liczby naturalnej n, oznaczającej kąt α
wyrazony w stopniach, określi ćwiartkę układu współrzednych. Np. n=400 wyprowadzi I
Zad 2 Napisz program, który dla wprowadzonej liczby naturalnej N wypisze nazwę dnia
tygodnia. Np.n=3 Wednesday
Uwaga! ważne i przydatne do instrukcji wyboru
Typ wyliczeniowy
Definicja typu wyliczeniowego składa się z trzech części:
słowa kluczowego enum
nazwy wprowadzonego typu
listy nazw symbolicznych wartości elementów wyliczenia w { }
enum dni {pon, wto, sro, czw, pia, sob, nie};
enum oceny {ndst=1, dop, dst, db, bdb, cel};
enum karty {pik, kier, karo, trefl};
enum constans {N=100, M=10, K};
enum logiczne { no, yes, nie=0, tak=1};
enum lista { kamil=1, jakub, marek, nicole, przemyslaw, patrycja,
kamil2, michal1, karolina, mateusz, dominika, michal2, michal3,
grzegorz, estera, krzysztof, kacper };
 po co to?
Najczęściej typ wyliczeniowy stosuje się do definiowania stałych, które są
typu całkowitego.
Stałe danego typu (dni, oceny, karty, lista) będą mogły przybierać kolejne
wartości począwszy od zera (stąd nazwa wyliczenia, typ wyliczeniowy), można
też „z palca” nadać im wartości, jak w typie oceny- kolejna wartość o jeden
większa od poprzedniej.
W typie constans, stała K otrzyma wartość 11
W typie logiczne no i nie otrzymują warość 0, a yes i tak wartość 1.
Jaką wartość przyjmie stała mateusz w typie lista?

gdzie deklarujemy typ wyliczeniowy?
- zwykle po deklaracji zmiennych :
int main( )
enum …..{,,,,,,,,,,,};
ZADANIE 1:
Używając instrukcji wyboru switch oraz typu wyliczeniowego wyznacz
wartość wyrażenia:
𝒙𝟐 ,
𝒅𝒍𝒂 𝒏 = 𝟐
𝒙,
𝒅𝒍𝒂 𝒏 = 𝟏
𝒚=
𝒔𝒊𝒏𝒙,
𝒅𝒍𝒂 𝒏 = 𝟑
𝒄𝒐𝒔𝒙,
𝒅𝒍𝒂 𝒏 = 𝟒
𝒅𝒍𝒂 𝒊𝒏𝒏𝒚𝒄𝒉 𝒏
{𝟏,
double x, y=1
enum
{iks=1, iks_kw, sin_x, cos_x};
ZADANIE 2 Podręcznik str 233 zad 3.9,
ZADANIE 3 Podręcznik str 233 zad3.10