§ 4. Аператар галінавання
4.3. Аператар множнага выбару
Аператар if дазваляе выбіраць адзін з двух альтэрнатыўных варыянтаў. Калі патрабуецца выбар з трох і больш варыянтаў, то выкарыстанне некалькіх аператараў if можа пагаршаць чытальнасць кода праграмы. У С++ яшчэ маецца аператар множнага выбару switch, які дазваляе выбраць адзін варыянт з некалькіх у залежнасці ад значэння выразу і забяспечвае множнае разгалінаванне ў праграме. Часта выкарыстанне аператара switch больш эфектыўнае, чым выкарыстанне некалькіх аператараў if. Фармат каманды: switch ( <пераменная> ) { case канстанта: { каманда(ы)1 break; } case канстанта: { каманда(ы)2 break; } ... default: { каманда(ы)n break; } } Пераменная па чарзе параўноўваецца са значэннямі канстант, апісанымі пасля ключавога слова case. Пасля двукроп’я знаходзіцца код, які будзе выкананы ў выпадку, калі пераменная апынулася роўнай бягучаму значэнню. Каманда break неабходна для таго, каб перапыніць выкананне switch і не правяраць пераменную на супадзенне з астатнімі значэннямі. У блоку default прапісваюцца каманды, якія будуць выконвацца ў тым выпадку, калі ніводнага супадзення пераменнай з пералічанымі значэннямі не было выяўлена. Гэты блок можа быць прапушчаны. Фігурныя дужкі могуць быць прапушчаны, калі ў блоку выконваецца толькі адна каманда. Прыклад 4.6. Дадзена значэнне n (1 ≤ n ≤ 7), якое з’яўляецца нумарам дня тыдня. Напісаць праграму, якая вызначыць па значэнні n, выхадны гэты дзень ці рабочы. Этапы выканання задання I. Зыходныя даныя: n (нумар дня тыдня). II. Вынік: паведамленні — «рабочы», «выхадны» або «памылковы нумар». III. Алгарытм рашэння задачы. 1. Увод зыходнага ліку. 2.1. Калі значэнні n роўны 1, 2, 3, 4, 5 — выводзіцца паведамленне «рабочы». 3. Вывад выніку. VI. Апісанне пераменных: n – int. |
Трэба памятаць пра некаторыя асаблівасці аператара switch:
З тэхнічнага пункту гледжання аператары break з’яўляюцца неабавязковымі ў аператары switch. Яны выкарыстоўваюцца для заканчэння работы паслядоўнасці каманд, якія належаць да аднаго блока, дзе адбылося супадзенне значэння пераменнай са значэннем канстанты. Калі аператар break адсутнічае, то пасля таго, як было выяўлена супадзенне, будуць выкананы ўсе астатнія каманды для кожнага выбару, апісанага пасля супадзення. Параўнанні не адбываюцца, а каманды выконваюцца паслядоўна Прыклад 4.6. V. Праграма:
VI. Тэсціраванне: |