User Tools

Site Tools


dydaktyka:cprog:2015:switch

This is an old revision of the document!


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 bądź instrukcji switch i przejście do kolejnego etapu programu (czyli do instrukcji bezpośrednio po instrukcji przerwanej).

:!: 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 warunkowa "switch"

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;
}

Zadania podsumowujące

Zadanie WDN

Napisz program, który dla zadanego przez użytkownika numeru dnia tygodnia wypisze na ekran skrót jego nazwy (np. dla 1 – pn, dla 2 – wt itd.). W przypadku błędnych danych (liczba spoza zakresu) program powinien wyświetlić stosowny komunikat.
Użyj instrukcji switch.

dydaktyka/cprog/2015/switch.1448486043.txt.gz · Last modified: 2020/03/25 11:46 (external edit)