- •Міністерство освіти і науки, молоді та спорту України Технічний коледж національного університету водного господарства та природокористування Лабораторна робота № 5
- •5.1 Мета роботи
- •5.2 Теоретичні відомості Арифметичні операції
- •Операції відношення і логічні операції
- •Операція присвоювання
- •Операції () і []
- •Операція умова ? :
- •Операція кома
- •Керуючі оператори
- •Оператор switch
- •5.3 Опис лабораторного обладнання
- •5.4 Програма роботи
- •5.5 Контрольні запитання
Оператор switch
Мова С має вбудований оператор множинного вибору, названий switch. Основна форма оператора має такий вид:
switch (вираз)
{
case constant 1: послідовність операторів
break;
case constant2: послідовність операторів
break;
…………
case constantN:
послідовність операторів
break;
default послідовність операторів
}
Спочатку обчислюється вираз в дужках за ключовим словом потім проглядається список міток (case constant 1 і т.д.) доти поки не знаходиться мітка, відповідна значенню обчисленого виразу. Далі відбувається виконання відповідної послідовності операторів, що випливають за двокрапкою. Якщо ж значення виразу не відповідає жодній з міток оператора switch, то виконується послідовність операторів, що слідують за ключовим словом default.
Допускається конструкція оператора switch, коли слово default і відповідна послідовність операторів може відсутньому.
Ще один не відомий нам раніше оператор - break.
Коли після послідовності операторів зустрічається ключове слово break, то виконання оператора break приводить до виходу з оператора switch і переходу до наступного оператора програми. Наявність оператора break в операторі switch необов’язково. Що буде, якщо операторів break не буде? Відповідь на це питання дадуть результати роботи наступних двох варіантів програми:
#include <stdio. h>
/* Приклад 6.6 •/
/* Приклад оператора switch із використанням break */
main( )
{
char ch;
printf("Введіть заголовну літеру російського алфавіту:”);
ch=getchar( );
if(ch>='A' && сh<='Я')
switch(ch)
{
case 'A':
printf("Алексєєв \n");
break:
case 'Б':
printf(“Булгаков \n“);
break;
case 'В':
printf(“Волошин \n”);
break;
case ‘Г':
print("Гоголь\n");
break;
default: рrintf(“Достоєвський, Зощенко й інші \п");
break:
}
else рrintf("Треба було ввести заголовну російську літеру \п"):
}
#include <stdio.h>
/* Приклад 6.7 */ ,
/* Приклад оператора switch без використання break */
main( )
{
char ch;
printf("Введіть заголовну літеру російського алфавіту:");
ch=getchar( );
if (ch>='A'&&ch<=’я')
switch(ch) {
case 'A':
printf("Алексєєв \n");
case 'Б':
printf(" Булгаков \n");
case 'В':
printf(" Волошин \n");
case Т:
printf(“Гоголь \n");
default:
printf(“Достоєвський, Зощенко і другае \п”);
else printf(“Потрібно було ввести заголовну російську літеру \n");
}
Припустимо, ви запустили першу програму і ввели літеру Б.Результатом роботи програми буде наступний рядок:
Булгаков
Виконався тільки один оператор, що відповідає мітці 'Б'. У випадку запуску іншої програми введення літери Б результат роботи програми буде наступний:
Булгаков
Волошин
Гоголь
Достоєвський, Зощенко й ін.
Ми бачимо, що виконалися всі оператори, починаючи з мітки 'Б', включаючи той, що випливає за словом default.
Оператор break закінчує послідовність операторів, що відносяться до кожної мітки. Далі виконується наступний оператор програми. Якщо ж оператор break відсутній, то виконання продовжується до першого оператора break або до кінця оператора switch.