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