Інструкція перемикач (англ. Switch statement), також знана як інструкція вибору та оператор перемикач (switch, case, select або inspect) — це спеціального виду інструкція мови програмування, що забезпечує багатонаправлене (множинне) розгалуження в програмі. Назва інструкції в різних мовах може різнитися, переважно — це інструкції switch
, case
, select
або inspect
. Цей механізм вибору існує в більшості імперативних мовах програмування таких як Pascal, Ada, C/, C#, Java тощо. Інструкція перемикач дозволяє робити вибір однієї з множини альтернатив.
Загальний принцип
Вона працює наступним чином:
- Значення виразу послідовно порівнюється з константами із заданого списку.
- У разі виявлення збігу для однієї з умов порівняння виконується послідовність інструкцій, пов'язана з цією умовою.
Хоча багатонаправлене тестування можна реалізувати з допомогою послідовності вкладених інструкцій if
, для багатьох ситуацій інструкція switch
виявляється ефективнішим рішенням.
Приклади
Далі наведені прості приклади написані на деяких мовах програмування, що використовують перемикач, які друкують рядок тексту, зміст якого залежить від значення введеного користувачем.
C, C++, D, Java, PHP, ActionScript, JavaScript
switch (n) { case 0: printf("Ви ввели нуль."); break; case 1: case 4: case 9: printf("n є повним квадратом."); break; case 2: printf("n парне число."); case 3: case 5: case 7: printf("n є простим числом."); break; case 6: case 8: printf("n парне число."); break; default: printf("Only single-digit numbers are allowed."); break; }
C#
switch (n) { case 0: Console.WriteLine("Ви ввели нуль."); break; case 1: case 4: case 9: Console.WriteLine("n є повним квадратом."); break; case 2: Console.WriteLine("n парне число."); goto case 3; case 3: case 5: case 7: Console.WriteLine("n є простим числом."); break; case 6: case 8: Console.WriteLine("n парне число."); break; default: Console.WriteLine("Only single-digit numbers are allowed."); break; }
Fortran
select case (n) case (:-1) write(*,*) "ви ввели від'ємне число" case (0) write(*,*) "ви ввели нуль." case (1,4,9) write(*,*) "n є повним квадратом." case (2) write(*,*) "n парне число і дорівнює 2" case (3,5,7) write(*,*) "n є простим числом." case (6,8) write(*,*) "n парне число." case (10:) write(*,*) "тільки числа з [0:9]!" case default write(*,*) "яким чином ви сюди потрапили?" end select
Pascal
case age of 0,1: writeln('baby'); 2,3,4: writeln('toddler'); 5..12: writeln('kid'); 13..19: writeln('teenager'); 20..25: writeln('young'); else writeln('old ;)'); end;
Perl
use feature 'switch'; given ($foo) { when (undef) { say '$foo is undefined'; } when ("foo") { say '$foo is the string "foo"'; } when ([1,3,5,7,9]) { say '$foo is an odd digit'; continue; # Fall through } when ($_ < 100) { say '$foo is numerically less than 100'; } when (\&complicated_check) { say 'a complicated check for $foo is true'; } default { die "I don't know what to do with $foo"; } }
Джерела
- Тема 5. Оператори розгалуження та цикли у C#. Архів оригіналу за 9 червня 2011. Процитовано 5 липня 2011. [Архівовано 2011-06-09 у Wayback Machine.]
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Instrukciya peremikach angl Switch statement takozh znana yak instrukciya viboru ta operator peremikach switch case select abo inspect ce specialnogo vidu instrukciya movi programuvannya sho zabezpechuye bagatonapravlene mnozhinne rozgaluzhennya v programi Nazva instrukciyi v riznih movah mozhe riznitisya perevazhno ce instrukciyi switch case select abo inspect Cej mehanizm viboru isnuye v bilshosti imperativnih movah programuvannya takih yak Pascal Ada C C C Java tosho Instrukciya peremikach dozvolyaye robiti vibir odniyeyi z mnozhini alternativ 1 Zmist 1 Zagalnij princip 2 Prikladi 2 1 C C D Java PHP ActionScript JavaScript 2 2 C 2 3 Fortran 2 4 Pascal 2 5 Perl 3 DzherelaZagalnij principred Vona pracyuye nastupnim chinom 1 Znachennya virazu poslidovno porivnyuyetsya z konstantami iz zadanogo spisku U razi viyavlennya zbigu dlya odniyeyi z umov porivnyannya vikonuyetsya poslidovnist instrukcij pov yazana z ciyeyu umovoyu Hocha bagatonapravlene testuvannya mozhna realizuvati z dopomogoyu poslidovnosti vkladenih instrukcij if dlya bagatoh situacij instrukciya switch viyavlyayetsya efektivnishim rishennyam Prikladired Dali navedeni prosti prikladi napisani na deyakih movah programuvannya sho vikoristovuyut peremikach yaki drukuyut ryadok tekstu zmist yakogo zalezhit vid znachennya vvedenogo koristuvachem C C D Java PHP ActionScript JavaScriptred switch n case 0 printf Vi vveli nul break case 1 case 4 case 9 printf n ye povnim kvadratom break case 2 printf n parne chislo case 3 case 5 case 7 printf n ye prostim chislom break case 6 case 8 printf n parne chislo break default printf Only single digit numbers are allowed break C red switch n case 0 Console WriteLine Vi vveli nul break case 1 case 4 case 9 Console WriteLine n ye povnim kvadratom break case 2 Console WriteLine n parne chislo goto case 3 case 3 case 5 case 7 Console WriteLine n ye prostim chislom break case 6 case 8 Console WriteLine n parne chislo break default Console WriteLine Only single digit numbers are allowed break Fortranred select case n case 1 write vi vveli vid yemne chislo case 0 write vi vveli nul case 1 4 9 write n ye povnim kvadratom case 2 write n parne chislo i dorivnyuye 2 case 3 5 7 write n ye prostim chislom case 6 8 write n parne chislo case 10 write tilki chisla z 0 9 case default write yakim chinom vi syudi potrapili end select Pascalred case age of 0 1 writeln baby 2 3 4 writeln toddler 5 12 writeln kid 13 19 writeln teenager 20 25 writeln young else writeln old end Perlred use feature switch given foo when undef say foo is undefined when foo say foo is the string foo when 1 3 5 7 9 say foo is an odd digit continue Fall through when lt 100 say foo is numerically less than 100 when amp complicated check say a complicated check for foo is true default die I don t know what to do with foo Dzherelared a b Tema 5 Operatori rozgaluzhennya ta cikli u C Arhiv originalu za 9 chervnya 2011 Procitovano 5 lipnya 2011 Arhivovano 2011 06 09 u Wayback Machine Otrimano z https uk wikipedia org w index php title Instrukciya peremikach amp oldid 44050847