Кочан Стивен - Программирование на Objective-C 2.0 стр 18.

Шрифт
Фон

Цепочки if-else гак часто используются при разработке программ, что в язык Objcctivc-C включен специальный оператор для выполнения именно этой функции. Это оператор switch. Он имеет следующий формат. switch (выражение) { case valuel: программный оператор программный оператор break; case value2. программный оператор программный оператор break; case valuen: программный оператор программный оператор break; default: программный оператор программный оператор break; } Выражение, указанное в круглых скобках, последовательно сравнивается со значениями valuel, value2, ..., valuer), которые могут быть простыми константами или константными выражениями. Если найден вариант (case), при котором значение равно значению выражения, выполняются программные операторы, следующие после этого предложения case. Если включено несколько таких операторов, то их можно не заключать в фигурные скобки. Оператор break вызывает прекращение выполнения оператора switch. Не забывайте включать оператор break в конце каждого предложения case, иначе выполнение программы продолжится в следующем предложении case. Иногда это делают преднамеренно; в таких случаях обязательно включите комментарии, чтобы предупредить других о ваших целях. Особый (необязательный) вариант с именем default выполняется в том случае, если значение выражения не соответствует ни одному из значений, указанных в предложениях case. Это эквивалентно предложению else, которое использовалось в предыдущем примере для «улавливания» любых неуказанных вариантов. На самом деле общую форму оператора switch можно представить в эквивалентной форме оператора if. if (выражение == value 1) { программный оператор программный оператор } else if (выражение == value2) { программный оператор программный оператор } else if (выражение == valuen) { программный оператор программный оператор > else { программный оператор программный оператор } Мы можем теперь преобразовать большой оператор if из программы 6.8А в эквивалентный оператор switch. Это показано в программе 6.9. Программа 6.9 // Программа вычисления простых выражений в форме // число оператор число import

// Здесь нужно вставить секции interface и implementation // для класса Calculator int main (int argc, char argv[]) { NSAutoreleasePool pool = [[NSAutoreleasePool alloc] init]; double value 1, value2; char operator; Calculator *deskCalc = [[Calculator alloc] init]; NSLog (@"Type in your expression."); scant («%lf %c %lf, &value1, &operator, &value2); [deskCalc setAccumulator: valuel]; switch ( operator) { case [deskCalc add: value2]; break; case [deskCalc subtract:

value2]; break; case [deskCalc multiply: value2]; break; case 7 : [deskCalc divide: value2]; break; default: NSLog (@»Unknown operator."); break; } NSLog (@"%.2Г, [deskCalc accumulator]); [deskCalc release]; [pool drain]; return 0; } Вывод программы 6.9 Type in your expression. (Введите ваше выражение) 178.99 326.8 -147.81 После считывания выражения значение переменной operator сравнивается со значениями каждого варианта case. Если найдено соответствие, то выполняются операторы внутри этого варианта case. Затем оператор break выполняет выход из оператора switch, после чего завершается выполнение программы. Если ни один из вариантов не соответствует значению переменной operator, то используется вариант по умолчанию default, в котором выводится сообщение «Unknown operator» (Неизвестный оператор). Оператор break для варианта default не является необходимым, т.к. после него в данном операторе switch не выполняется никаких операторов. Однако практика надежного программирования требует вставки break в конце каждого варианта. При написании оператора switch помните, что нельзя указывать одинаковые значения для двух разных предложений case. Однако один набор программных операторов можно связывать с несколькими case-значениями. Для этого нужно задать список из нескольких case-значений (с ключевым словом case перед каждым значением и двоеточием после значения) и общий набор программных операторов. Например, в следующем операторе switch выполняется метод multiply:, если значение operator указано символом «звездочка» или строчной буквой х. switch ( operator) case case 'x': [deskCalc multiply: value2]; break; } 6.3. Булевы переменные

Почти все, кто учится программировать, довольно скоро сталкиваются с задачей написания программы, которая создает таблицу простых чисел. Напомним, что положительное целое число р является простым числом, если оно не делится нацело ни на одно из других целых чисел, кроме 1 и самого себя. Первым простым числом является 2. Следующее простое число 3, так как оно делится нацело только на 1 и 3; 4 не является простым числом, так как оно делится нацело на 2. Создать таблицу простых чисел можно несколькими способами. Например, чтобы создать таблицу простых чисел, не превышающих 50, достаточно напрямую проверить делимость каждого целого числа р на все целые числа от 2 до р-1. Если р делится без остатка на одно из этих чисел, значит, р не является простым числом, иначе оно является простым. В программе 6.10 создается список простых чисел, не превышающих 50. Программа 6.10 // Программа создания таблицы простых чисел (prime number) import

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке