Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab5.doc
Скачиваний:
3
Добавлен:
13.09.2019
Размер:
528.38 Кб
Скачать

Оператор 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.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]