Decyzje jeszcze raz


Na warsztat weźmiemy tym razem instrukcję switch. Za jej pomocą sprawdzamy, czy w danej zmiennej są zapisane konkretne wartość. Najpierw przykład:

#include <stdio.h>
#include <time.h>
#include <stdlib.h>

int main(){
  /*przypisujemy X losowa wartosc od 1 do 5*/
  int X;
  srand(time(NULL));
  X = rand() % 5 + 1;

  switch(X){
  case 1:
    printf("Zmienna X jest rowna");
    printf(" 1\n");
    break;
  case 2:
    printf("Zmienna X jest rowna 2");
    break;
  case 3:
    printf("Zmienna X jest rowna 3");
    break;
  case 4:
    printf("Zmienna X jest rowna 4");
    break;
  default:
    printf("Zmienna X jest rowna 5");
    break;
  }

  return 0;
}

Po słowie switch w nawiasach () umieszczamy zmienną, której wartość chcemy zbadać. Potem w nawiasach {} umieszczamy wszystkie rozważane "przypadki". Po słowie case umieszczamy wartość, z którą chcemy porównać zmienną, a potem dwukropek. Jeśli zmienna jest równa wartości po słówku case, to zostaną wykonane wszystkie instrukcje do wystąpienia słowa kluczowego break albo do nawiasu } zamykającego switch. Możesz się o tym przekonać usuwając pierwsze wystąpienie brake w powyższym przykładzie. Instrukcja default jest opcjonalna i służy nam obsłużeniu wszystkich tych sytuacji, których nie uwzględniliśmy za pomocą case. default umieszczamy zawsze na końcu i prawdę powiedziawszy break jest niepotrzebny, ale wielu programistów umieszcza go, aby uniknąć ewentualnych pomyłek przy ewentualnym modyfikowaniu programu w przyszłości.

Ćwiczenie

Za pomocą instrukcji switch oraz operatora ++, (przypominam, że zwiększa zmienną o jeden) spraw, aby niezależnie od wyniku losowania zmienna X zawsze miała wartość 4.