Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Оператор switch

Читайте также:
  1. C Описываем оператор-функцию
  2. А.1 Обзор программных операторов
  3. Анализ структуры интегрированной информационной системы управления предприятием регионального оператора связи
  4. Взаимодействия в группе операторов
  5. Вимоги щодо провадження туроператорської діяльності
  6. Возврат заявок на участие в электронном аукционе оператором электронной площадки.
  7. Выполнение операторов в синтаксисе 1С

Оператор switch призначений для організації вибору з безлічі різних варіантів. Формат оператора наступний:

switch (вираз)

{ [оголошення]:

[ case константний-вираз1]: [ список-операторів1]

[ case константний-вираз2]: [ список-операторів2]

:

:

[ default: [ список операторів ]]

}

Вираз, що розташований за ключовим словом switch у круглих дужках, може бути будь-яким виразом, припустимим в мові СІ, значення якого повинно бути цілим. Відзначимо, що можна використовувати явне приведення до цілого типу, однак необхідно пам'ятати про ті обмеження і рекомендації, про які говорилося вище.

Значення цього виразу є ключовим для вибору з декількох варіантів. Тіло оператора smitch складається з декількох операторів, позначених ключовим словом case з наступним константним виразом. Слід зазначити, що використання цілого константного виразу є істотним недоліком.

Тому що константний вираз обчислюється під час трансляції, він не може містити змінні чи виклики функцій. Звичайно як константний вираз використовуються цілі чи символьні константи.

Всі константні вирази в операторі switch повинні бути унікальні. Крім операторів, позначених ключовим словом case, може бути, але обов'язково один, фрагмент позначений ключовим словом default.

Список операторів може бути порожнім, або містити один чи більш операторів. Причому в операторі switch не потрібно складати послідовність операторів у фігурні дужки.

Відзначимо також, що в операторі switch можна використовувати свої локальні змінні, оголошення яких знаходяться перед першим ключовим словом case, однак в оголошеннях не повинна використовуватися ініціалізація.

Схема виконання оператора switch наступна:

§ обчислюється значення виразу в круглих дужках;

§ обчислене значення послідовно порівнюється з константними виразами, що розташовані за ключовими словами case;

§ якщо один з константних виразів збігається зі значенням виразу, то керування передається на оператор, позначений відповідним ключовим словом case;

§ якщо жодин з константних виразів не дорівнює виразу, то керування передається на оператор, позначений ключовим словом default, а у випадку його відсутності керування передається на наступний після switch оператор.

Відзначимо цікаву особливість використання оператора switch: конструкція зі словом default може бути не останнього в тілі оператора switch. Ключові слова case і default у тілі оператора switch істотні тільки при початковій перевірці, коли визначається початкова точка виконання тіла оператора switch. Всі оператори, між початковим оператором і кінцем тіла, виконуються незалежно від ключових слів, якщо тільки якийсь з операторів не передасть керування з тіла оператора switch. Таким чином, програміст повинен сам подбати про вихід з case, якщо це необхідно. Найчастіше для цього використовується оператор break.

Для того, щоб виконати ті самі дії для різних значень виразу, можна позначити той самий оператор декількома ключовими словами case.

Приклад:

int i=2;

switch (i)

{

case 1: i += 2;

case 2: i *= 3;

case 0: i /= 2;

case 4: i -= 5;

default:;

}

Виконання оператора switch починається з оператора, позначеного case 2. Таким чином, змінна одержує значення, рівне 6, далі виконується оператор, позначений ключовим словом case 0, а потім case 4, змінна і прийме значення 3, а потім значення -2. Оператор, позначений ключовим словом default, не змінює значення змінної.

Відзначимо, що в тілі оператора switch можна використовувати вкладені оператори switch, при цьому в ключових словах case можна використовувати однакові константні вирази.

Приклад:

:

switch (a)

{

case 1: b=c; break;

case 2:

switch (d)

{ case 0: f=s; break;

case 1: f=9; break;

case 2: f-=9; break;

}

case 3: b-=c; break;

:

}


Дата добавления: 2015-07-20; просмотров: 106 | Нарушение авторских прав


Читайте в этой же книге: Компоненти інтегрованого середовища | Головне меню | Clear (Стерти) – видаляє обраний фрагмент тексту, але не заносить його в текстовий буфер. | COMPILE | Size/Move (Змінити розмір/Перемістити) – використовується для того, щоб змінити розмір чи місце розташування активного вікна. | Створення першої програми | ТЕОРЕТИЧНА ЧАСТИНА | Використовувані символи | Константи | Стандартні функції |
<== предыдущая страница | следующая страница ==>
Пріоритети операцій і порядок обчислень| Оператор break

mybiblioteka.su - 2015-2024 год. (0.006 сек.)