This is an old revision of the document!
break
oraz continue
switch
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
#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; }
Rezultat wykonania programu:
1 2 3 <ominiete> 5 6 7 8 <przerwane> Koniec.
Instrukcja switch
bardzo przypomina w działaniu konstrukcję 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ć:
switch (wyrażenie) { case wartosc1: instrukcja1 case wartosc2: instrukcja2 ... case wartosc_n: instrukcja_n default: instrukcja_domyslna }
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
#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; }
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
.