Przejdź do treści

Centrum Kształcenia Zawodowego i Ustawicznego w Mrągowie

Instrukcja switch

poniedziałek,

Instrukcja switch

Instrukcja wyboru switch pozwala na wygodny wybór instrukcji do wykonania spośród wielu opcji. Podobny efekt można osiągnąć stosując kilka instrukcji if oraz jej odmiany, jednak w takim przypadku kod aplikacji będzie mniej przejrzysty. Instrukcja switch jest dostępna w wielu językach programowania, jednak mogą wystąpić pewne różnice w składni i sposobie działania. Prezentowane przykłady dotyczą języka PHP. Pierwszy przykład to emulator automatu do kawy. Wybór opcji następuje na podstawie wartości zmiennej $x, po słowach kluczowych case określono opcje. Jeśli dopasowanie się powiedzie, wykonywane są instrukcje umieszczone pomiędzy case… i break.

<?php
$x = 3;

switch ($x) {
  	case 1:
  	  $napoj = 'Espresso';
  	break;
  	case 2:
  	  $napoj = 'Kawa duża';
  	break;
  	case 3:
  	  $napoj = 'Cappuccino';
  	break;
  	case 4:
  	  $napoj = 'Espresso z mlekiem';
  	break;
  }

 echo 'Wybrano: ' . $napoj; // wyświetli tekst "Cappuccino"
?>

W instrukcji switch można za pomocą słowa kluczowego default zamieścić opcję domyślną, która wykona się, jeśli dopasowanie będzie nieudane. Przykład to kod ustalający na podstawie żądania właściwy tytuł strony internetowej. W przypadku zażądania zasobu, który nie został zdefiniowany, zostanie wybrana opcja „Błąd 404”.

<?php
  $request = 'galeria';

  switch ($request) {
  	case 'start':
  	  $title = 'Witamy na naszej stronie';
  	break;
  	case 'kontakt':
  	  $title = 'Nasze dane kontaktowe';
  	break;
  	case 'galeria':
  	  $title = 'Galeria zdjęć';
  	break;
  	default:
  	  $title = 'Błąd 404';
  }

  echo $title;
?>

Słowo kluczowe break w instrukcji switch jest opcjonalne, czasami można to wykorzystać. Poniższy kod po wybraniu dowolnego uwzględnionego zawodu zawsze wyświetli tekst „Dobry wybór!”, przy braku dopasowania komunikat otrzyma treść „Dokonaj wyboru”.

<?php
  $zawod = 'technik reklamy';

  switch ($zawod) {
  	case 'technik informatyk':
  	case 'technik reklamy':
  	case 'technik mechanik':
  	  echo 'Dobry wybór!'
  	break;
  	default:
  	  echo 'Dokonaj wyboru';
  }

?>

Pomiędzy case… i break może znaleźć się wiele instrukcji. W poniższym kodzie dzieje się tak w przypadku operacji dzielenia.

<?php
  $a = 3;
  $b = 4;
  $operacja = 'dzielenie';

  switch ($operacja) {
  	case 'dodawanie':
  	  $wynik = $a + $b;
  	break;
  	case 'odejmowanie':
  	  $wynik = $a - $b;
  	break;
  	case 'mnożenie':
  	  $wynik = $a * $b;
  	break;
  	case 'dzielenie':
  	  if($b != 0) {
  	    $wynik = $a / $b;
  	  } else {
  	  	$wynik = 'Błędne dane';
  	  }
  	break;
  	default:
  	  $wynik = 'Błędna operacja';
  }

  echo $wynik;
?>

Mniej znaną własnością instrukcji switch jest możliwość stosowania wyrażeń warunkowych.

<?php
    $x = 3;

  switch (true) {
  	case ($x > 0):
  	  echo 'dodatnia';
  	break;
  	case ($x < 0):
  	  echo 'ujemna';
  	break;
  	case ($x == 0):
  	  echo 'zero';
  	break;
  }

  // wyswietli tekst "dodatnia"
?>
Artykuł: Harmonogram egzaminów maturalnych

Harmonogram egzaminów maturalnych

Artykuł: Staże w Hiszpanii

Staże w Hiszpanii

Artykuł: Conformité Européenne

Conformité Européenne

Artykuł: Display Stream Compression

Display Stream Compression

Artykuł: High Dynamic Range

High Dynamic Range

Nasze technikum

Technik informatyk

Szkoły dla dorosłych

Nasza szkoła

Pełna oferta edukacyjna

Oferta szkoły