Źródło: Arkusze CKE
Wskaż kod, który jest funkcjonalnie równoważny zaprezentowanemu poniżej:
switch(nrTel) {
case 999: opis = "Pogotowie"; break;
case 998: opis = "Straż"; break;
case 997: opis = "Policja"; break;
default: opis = "Inny numer";
}
Kod 1.
with nrTel {
if (999) opis = "Pogotowie";
if (998) opis = "Straż";
if (997) opis = "Policja";
else opis = "Inny numer";
}
Kod 2.
if (nrTel == 999)
opis = "Pogotowie";
else if (nrTel == 998)
opis = "Straż";
else if (nrTel == 997)
opis = "Policja";
else opis = "Inny numer";
Kod 3.
if (nrTel == 999)
opis = "Pogotowie";
if (nrTel == 998)
opis = "Straż";
if (nrTel == 997)
opis = "Policja";
else
opis = "Inny numer";
Kod 4.
Opis =
if (nrTel == 999) => "Pogotowie";
else if (nrTel == 998) => "Straż";
else if (nrTel == 997) => "Policja";
else => "Inny numer";
Warianty odpowiedzi
-
A
Kod 1.
-
B
Kod 3.
-
C
Kod 2.
-
D
Kod 4.
Wyjaśnienie
Instrukcja switch działa na zasadzie wyboru jednej, konkretnej ścieżki na podstawie wartości zmiennej. Gdy napotka pasujący przypadek, wykonuje przypisany kod i dzięki instrukcji break opuszcza całą strukturę.
Dokładnym odpowiednikiem takiej logiki w pętlach warunkowych jest konstrukcja if ... else if ... else (przedstawiona w Kodzie 2).
Zwykłe niezależne instrukcje if (jak w Kodzie 3) sprawdzałyby każdy warunek po kolei. W przypadku sekcji else doprowadziłoby to do błędnego nadpisania wyniku, jeśli numer nie byłby równy 997. Tylko sieć połączonych warunków else if gwarantuje sprawdzenie kolejnych opcji wyłącznie wtedy, gdy poprzednie nie zostały spełnione.