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

0

Одна из важнейших идей программирования – выполнение разных действий в зависимости от обстоятельств. Все ли обязательные поля заполнены на форме заказа? Если все, то разблокировать кнопку Submit. Остались ли у игрока неиспользованные жизни? Если остались, продолжить игру, а если нет – отобразить картинку с могилкой и воспроизвести печальную музыку.

Такое поведение реализуется с использованием конструкции if /else, которая

имеет следующий синтаксис:

if (conditional) {

// Этот код выполняется, если условие истинно (true)

} else {

// Этот код выполняется, если условие ложно (false)

}

В  этой  главе  мы  не  будем  создавать  проект.  Тщательно  просмотрите  код примеров, обращая внимание на то, что вы узнали в двух предыдущих главах.

Пример кода с использованием if /else:

float truckWeight = 34563.8;

// Порог не превышен?

if (truckWeight < 40000.0) { printf("It is a light truck\n");

} else {

printf("It is a heavy truck\n");

}

Если секция else не нужна, ее можно не указывать:

float truckWeight = 34563.8;

// Порог не превышен?

if (truckWeight < 40000.0) { printf("It is a light truck\n");

}

Результатом условного выражения всегда является одно из двух значений: true (истина) или false (ложь). В языке С было решено, что false будет представляться 0, а любые не нулевые значения будут считаться равными true,

В приведенном примере с обеих сторон от оператора < стоят числа. Если число слева меньше числа справа, то результат выражения равен 1 (очень распространенный способ представления истинности). Если число слева больше либо равно числу справа, то результат выражения равен О(единственный способ представления ложности)

Подобные операторы часто встречаются в условных выражениях. В табл. 4.1 представлены основные операторы, используемые при сравнении чисел (и других типов, которые интерпретируются компьютером как числа).

Таблица 4.1. Операторы сравнения                                                                                         

< Число слева меньше числа справа?

> Число слева больше числа справа?

<= Число слева меньше либо равно числу справа?

>= Число слева больше либо равно числу справа? == Числа равны?

!= Числа не равны?

Оператор == заслуживает особого упоминания: в программировани и оператор

== используется для проверки равенства. Как вы уже знаете, одиночный знак равенства = используется для присваивания значений. Очень, очень многие ошибки происходят из-за того, что программисты вводят = вместо ==. Так что лучше отвыкайте думать о = как о «знаке равенства» отныне это «оператор присваивания.

В некоторых условных выражениях необходимы логические операторы. Представьте, что вам нужно проверить, входит ли число в некоторый диапазон – скажем, больше 0 и меньше 40 000? Для определения диапазонов можно использовать логический оператор AND (&&):

if ((truckWeight > 0.0) && (truckWeight < 40000.0)) { printf("Truck weight is within legal range.\n");

}

Три логических оператора приведены в табл. 4.2,

Таблица 4.2. Логические операторы

&&               Логический оператор AND — true только в том случае, если оба значения равны true

||                    Логический оператор OR — false только в том случае, если оба значения равны false

!                    Логический оператор NOT — true превращается false, и наоборот

Если у вас уже имеется опыт программирования на другом языке, учтите, что логического оператора «исключающего ОR» в Objеctive-C нет, поэтому здесь он не упоминается.

Логический оператор NOT (!) вычисляет отрицание выражения, приведенного в

скобках справа:

// Значение входит в разрешенный диапозон?

if (!((truckWeight > 0.0) && (truckWeight < 40000.0))) {

printf("Truck weight is not within legal range.\n");

}

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

По теме:

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