К Т П           План занятия                                                              1                                           Страницы  | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 | | 8 | | 9 |

2. Условные ветвления

Условное ветвление заставляет программу изменить свой порядок выполнения, основываясь на значении результата выражения. Одним из основных операторов условного ветвления является if, который вы уже могли видеть в программах раньше. Например:

int main()
{
    // Делаем A
    if (expression)
        // Делаем B
    else
        // Делаем C
    // Делаем D
}

Здесь есть два возможных пути выполнения программы. Если результатом выражения будет true, то программа выполнит A, B и D. Если же результатом выражения будет false, то программа выполнит A, C и D. Таким образом, выполнится либо B, либо С, оба варианта выполняться вместе не будут. Это уже не линейная программа.

Ключевое слово switсh также предоставляет механизм для выполнения условного ветвления. Общая идея операторов switсh проста: выражение оператора switch (например, switch(color)) должно производить значение, а каждый кейс (англ. «case») проверяет это значение на соответствие. Если кейс совпадает с выражением switch, то выполняются инструкции под соответствующим кейсом. Если ни один кейс не соответствует выражению switch, то выполняются инструкции после кейса default (если он вообще указан).

Оператор switch

Сначала пишем ключевое слово switch за которым следует выражение, с которым мы хотим работать. Обычно это выражение представляет собой только одну переменную, но это может быть и нечто более сложное, например, nX + 2 или nX − nY. Единственное ограничение к этому выражению — оно должно быть интегрального типа данных (т.е. типа char, short, int, long, long long или enum). Переменные типа с плавающей точкой или неинтегральные типы использоваться не могут.

После выражения switch мы объявляем блок. Внутри блока мы используем лейблы (англ. «labels») для определения всех значений, которые мы хотим проверять на соответствие выражению. Существуют два типа лейблов.

Первый вид лейбла это саse (или просто кейс), который объявляется с использованием ключевого слова case и имеет константное выражение. Константное выражение — это то, которое генерирует константное значение, другими словами: либо литерал (например,5), либо перечисление (например, COLOR_RED), либо константу (например, переменную x, которая была объявлена с ключевым словом const).

Второй тип лейбла — это лейбл по умолчанию (так называемый «default case»), который объявляется с использованием ключевого слова default. Код под этим лейблом выполняется, если ни один из кейсов не соответствует выражению switch. Лейбл по умолчанию является необязательным. В одном switch может быть только один default. Обычно его объявляют самым последним в блоке switch.

 

 


Предыдущая        В начало страницы       Следующая
2