User Tools

Site Tools


dydaktyka:cprog:2015:switch

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
dydaktyka:cprog:2015:switch [2015/11/19 22:42]
pkleczek [Instrukcje continue i break]
— (current)
Line 1: Line 1:
-====== Konstrukcja warunkowa "​switch"​ ====== 
- 
-===== Cel laboratorium ===== 
-  * Zapoznanie z instrukcją sterującą ''​break''​ oraz ''​continue''​ 
-  * Zapoznanie z konstrukcją warunkową ''​switch''​ 
- 
- 
-===== Instrukcje "​continue"​ i "​break"​ ===== 
- 
-Instrukcja ''​continue''​ powoduje natychmiastowe przejście do kolejnego obiegu pętli, z pominięciem ewentualnych dalszych instrukcji po ''​continue''​ (a więc w przypadku pętli ''​while''​ powoduje to przejście do sprawdzania warunku, a w przypadku pętli ''​for''​ -- dokonanie aktualizacji,​ a następnie przejście do warunku). 
- 
-Instrukcja ''​break''​ powoduje natychmiastowe opuszczenie pętli i przejście do kolejnego etapu programu. 
- 
-:!: Używaj ''​continue''​ i ''​break''​ w pętlach tylko wtedy, gdy zwiększa to czytelność kodu! 
- 
----- 
- 
-**Przykład** 
-<code c> 
-#include <​stdio.h>​ 
- 
-int main(void) 
-{ 
-    int i; 
- 
-    for (i = 1; i <= 10; i++) { 
-        if (i == 4) { 
-            printf("<​ominiete>​ "); 
-            continue; 
-        } 
- 
-        printf("​%d ", i); 
- 
-        if (i == 8) { 
-            printf("<​przerwane>​ "); 
-            break; 
-        } 
-    } 
- 
-    printf("​\n\nKoniec.\n"​);​ 
- 
-    return 0; 
-} 
-</​code>​ 
- 
-Rezultat wykonania programu: 
-<​code>​ 
-1 2 3 <​ominiete>​ 5 6 7 8 <​przerwane> ​ 
- 
-Koniec. 
-</​code>​ 
-===== Instrukcja warunkowa "​switch"​ ===== 
- 
-Instrukcja ''​switch''​ bardzo przypomina w działaniu konstrukcję [[http://​home.agh.edu.pl/​~pkleczek/​dokuwiki/​doku.php?​id=dydaktyka:​cprog:​2015:​conditionals#​instrukcja_warunkowa_if-else_if-else|if-else if-else]], z tym że pozwala na podjęcie jakiegoś działania w zależności od wartości **jednego** wyrażenia. 
- 
-Ogólna postać: 
-<​code>​ 
-switch (wyrażenie) { 
-    case wartosc1: 
-        instrukcja1 
-        ​ 
-    case wartosc2: 
-        instrukcja2 
-        ​ 
-    ... 
-    ​ 
-    case wartosc_n: 
-        instrukcja_n 
-        ​ 
-    default: 
-        instrukcja_domyslna 
-} 
-</​code>​ 
- 
-Wyrażenie najczęściej jest zmienną o określonej wartości. Jeśli tą wartością jest ''​wartosc1'',​ wykonywane są instrukcje następujące po odpowiedniej etykiecie ''​case''​ aż do instrukcji przerywającej (z reguły ''​break''​). Oznacza to, że w przypadku braku instrukcji przerywającej wykonane zostaną instrukcje odpowiadające kolejnym przypadkom. Przypadek ''​default''​ to element opcjonalny, określa instrukcje wykonywane wtedy, gdy wartość zmiennej nie jest równa żadnemu z przypadków wyszczególnionych z użyciem ''​case''​. 
- 
----- 
- 
-**Przykład** 
- 
-<code c> 
-#include <​stdio.h>​ 
- 
-int main(void) 
-{ 
-    int n; 
- 
-    printf("​Podaj liczbe naturalna: "); 
-    scanf("​%d",​ &n); 
- 
-    switch (n) { 
-    case 1:   // zauwaz brak instrukcji (np. break) 
-    case 2: 
-        printf("​Jeden lub dwa!\n"​);​ 
-        break; 
- 
-    case 3: 
-        printf("​Trzy!\n"​);​ 
-        break; 
- 
-    default: 
-        printf("​Cos innego...\n"​);​ 
-        break; 
-    } 
- 
-    return 0; 
-} 
-</​code>​ 
- 
----- 
- 
-**Zadanie**\\ 
-Napisz program, który dla zadanego przez użytkownika numeru dnia tygodnia wypisze na ekran jego nazwę (np. dla ''​1''​ -- poniedziałek). W przypadku błędnych danych (liczba spoza zakresu) program powinien wyświetlić stosowny komunikat. \\ 
-Użyj instrukcji ''​switch''​. 
  
dydaktyka/cprog/2015/switch.1447969354.txt.gz · Last modified: 2020/03/25 11:46 (external edit)