Главная » iPhone, Objective-C, Программирование для iOS и MacOS » Команда switch Objective-C

0

В программах довольно часто встречается ситуация, когда переменную требуется проверить по набору значений. С использованием команд if-else проверка будет выглядеть так:

int yeastType = …; if (yeastType == 1) {

makeBread();

} else if (yeastType == 2) { makeBeer();

} else if (yeastType == 3) { makeWine();

} else {

makeFuel();

}

Для упрощения подобных проверок в С имеется команда switch. Приведенный код можно заменить следующим:

int yeastType = …; switch (yeastType) {

case 1:

makeBread(); break;

case 2:

makeBeer(); break;

case 3:

makeWine(); break;

default:

makeFuel(); break; }

Обратите внимание на команды break. Без них после выполнения подходящей секции case система продолжит выполнение всех последующих секций case. Например, если конструкция switch записана следующим образом:

int yeastType = 2; switch (yeastType) {

case 1:

makeBread(); case 2:

makeBeer(); case 3:

makeWine();

default:

makeFuel();

}

программа выполнит makeBeer(), makeWine() и makeFuel(). В основном это сделано для того, чтобы один код мог выполняться для нескольких возможных значений:

int yeastType = …; switch (yeastType) {

case 1:

case 4:

makeBread(); break;

case 2:

case 5:

makeBeer(); break;

case 3:

makeWine(); break;

default:

makeFuel(); break; }

Как нетрудно представить, отсутствие break в конце секции case – распространенная ошибка программирования, которая обнаруживается только при странном поведении программы.

В  С  для  команд  switch установлено  одно  жесткое  ограничение:  значение  в

секциях case может быть только целочисленной константой. По этой причине команды switch относительно редко встречаются в программах Objective-C, а я описал эту конструкцию почти в самом конце книги.

Источник: Аарон Хилегас, «Objective-C. Программирование для iOS и MacOS», 2012 г.

По теме:

  • Комментарии