Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Instrukcja switch switch (wyrażenie) { case wart_1 : { instr_1; break; } case wart_2 : { instr_2; break; } … case wart_n : { instr_n; break; } default.

Podobne prezentacje


Prezentacja na temat: "Instrukcja switch switch (wyrażenie) { case wart_1 : { instr_1; break; } case wart_2 : { instr_2; break; } … case wart_n : { instr_n; break; } default."— Zapis prezentacji:

1 Instrukcja switch switch (wyrażenie) { case wart_1 : { instr_1; break; } case wart_2 : { instr_2; break; } … case wart_n : { instr_n; break; } default : { instr_(n+1); break; } }

2 Działanie instrukcji switch : obliczane jest wyrażenie umieszczone w nawiasach po słowie switch; 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. Działanie instrukcji switch zostaje wówczas zakończone; jeśli wartość wyrażenia nie zgadza się z żadną z wartości podanych w etykietach case, wówczas wykonywane są instrukcje umieszczone po etykiecie default. etykieta default może być umieszczona w dowolnym miejscu instrukcji switch, nawet na samym jej początku. Co więcej, etykiety default może nie być wcale. Wówczas, jeśli w zbiorze etykiet case nie ma żadnej etykiety równej wartości wyrażenia, instrukcja switch nie będzie wykonana. instrukcje występujące po etykiecie case nie muszą kończyć się instrukcją break. Jeśli jej nie umieścimy, to będą wykonywane instrukcje umieszczone pod następną etykietą case.

3 Instrukcja break instrukcja break jest używana również w instrukcjach pętli for, while, do…while; instrukcja break powoduje natychmiastowe przerwanie wykonywania tych pętli; jeśli mamy do czynienia z pętlami zagnieżdżonymi, to instrukcja break powoduje przerwanie tylko tej pętli, w której została bezpośrednio użyta. jest to więc przerwanie z wyjściem o jeden poziom wyżej.

4 Przykład: /*--------------------------------------------------------------------------------*/ /* Program oblicza stopień na podstawie liczby otrzymanych */ /* punktów. Kryteria: */ /* 0.. 49 pkt. - 2 */ /* 50.. 59 pkt. - 3 */ /* 60.. 69 pkt. - 3.5 */ /* 70.. 79 pkt. - 4 */ /* 80.. 89 pkt. - 4.5 */ /* 90..100 pkt. - 5 */ /*--------------------------------------------------------------------------------*/

5 main () { int lp; float st; printf( "Podaj liczbę punktów (0 <= lp <= 100): "); scanf(" %d",&lp); lp = lp/10; switch (lp) { case 5 : { st = 3; break;} case 6 : { st = 3.5; break;} case 7 : { st = 4; break;} case 8 : { st = 4.5; break;} case 9 : { st = 5; break;} case 10 : { st = 5; break;} default : { st = 2; break;} } printf("Twoja ocena to: %3.1f", st); system(pause); return 0; } Podaj liczbę punktów (0 <= lp <= 100): 84 Twoja ocena: 4.5

6 Instrukcja for for (ini; wyraz_warunkowe; krok ) treść_pętli; ini - jest to instrukcja inicjalizująca wykonywanie pętli for; wyraz_warunkowe - jest to wyrażenie obliczane przed każdym obiegiem pętli. Jeśli jest ono różne od zera, to wykonywane zostaną instrukcje będące treścią pętli; krok - jest to instrukcja wykonywana na zakończenie każdego obiegu pętli. Jest to ostatnia instrukcja wykonywana bezpośrednio przed obliczeniem wyrażenia warunkowego wyraz_warunkowe.

7 Działanie instrukcji for : 1.najpierw wykonywana jest instrukcja inicjalizująca pracę pętli; 2.obliczane jest wyrażenie warunkowe; jeśli jest ono równe 0 - praca pętli jest przerywana; 3.jeśli wyrażenie warunkowe jest różne od zera, wówczas wykonywane zostaną instrukcje będące treścią pętli; 4.po wykonaniu treści pętli wykonana zostanie instrukcja krok, po czym następuje powrót do p. 2.

8 Uwagi: 1.instrukcji inicjalizujących ini może być kilka; 2.wówczas muszą być one oddzielone przecinkami; podobnie jest w przypadku instrukcji kroku krok; 3.wyszczególnione elementy: ini, wyraz_warunkowe, krok nie muszą wystąpić; 4.dowolny z nich można opuścić, zachowując jednak średnik oddzielający go od sąsiada. 5.opuszczenie wyrażenia warunkowego jest traktowane tak, jakby stało tam wyrażenie zawsze prawdziwe.

9 Instrukcja while while (wyrażenie) {instrukcja(e)}; najpierw obliczana jest wartość wyrażenia w nawiasach; jeśli wartość ta jest prawdziwa (niezerowa), to następuje wykonywanie instrukcji w pętli tak długo, aż wyrażenie przyjmie wartość zerową ( fałsz); należy zwrócić uwagę, że wartość wyrażenia jest obliczana przed wykonaniem instrukcji.

10 Przykład: /*------------------------------------------------------------------*/ /* Program wykonuje sumowanie n liczb całkowitych. */ /* Jeśli kolejnym sumowanym składnikiem jest 0, to */ /* proces sumowania zostaje zakończony. */ /*------------------------------------------------------------------*/

11 main () { int a, l, n, S; clrscr (); cout > n; cout > a; l = 0; S = 0; while ((a != 0) && (l < n)) { l = l+1; S = S + a; cout > a; } cout << endl; cout << "Suma = " << S << endl; cout << "Liczba składników = " << l << endl; return 0; } Podaj n: 10 Podaj a: 34 Podaj a: 79 Podaj a: -33 Podaj a: 50 Podaj a: 0 Suma = 130 Liczba składników = 4

12 Instrukcja do... while do instrukcja while (wyrażenie); instrukcja jest wykonywana w pętli tak długo póki wyrażenie ma wartość niezerową ( prawda); z chwilą, gdy wyrażenie przyjmie wartość zerową (fałsz), działanie instrukcji zostaje zakończone.

13 Przykład: /*------------------------------------------------------------------------------*/ /* Program wykonuje sumowanie liczb całkowitych. */ /* Sumowanie zostaje zakończone, gdy suma */ /* składników przekroczy wartość 100. */ /*------------------------------------------------------------------------------*/

14 main () { int a, l, S; clrscr (); l = 0; S = 0; do { cout << "Podaj a: "; cin >> a; l = l+1; S = S + a; } while (S < =100); cout << endl; cout << "Suma = " << S << endl; cout << "Liczba składników = " << l << endl; return 0; } Podaj a: 25 Podaj a: 13 Podaj a: 37 Podaj a: 48 Suma = 123 Liczba składników = 4

15 Generowanie losowe liczby: srand( time( NULL ) ); n=rand()


Pobierz ppt "Instrukcja switch switch (wyrażenie) { case wart_1 : { instr_1; break; } case wart_2 : { instr_2; break; } … case wart_n : { instr_n; break; } default."

Podobne prezentacje


Reklamy Google