797.16K
Category: programmingprogramming

13

1.

Использование логического типа данных в ветвлениях if
Условная конструкция if-else направляет ход программы по одному из возможных
путей в зависимости от условия. Она проверяет истинность условия, и если оно
истинно, выполняет блок инструкций.
В простейшем виде конструкция if имеет следующую сокращенную форму:
В качестве условия использоваться условное выражение, которое возвращает true или
false. Если условие возвращает true, то выполняются последующие инструкции, которые
входят в блок if. Если условие возвращает false, то последующие инструкции не
выполняются. Блок инструкций заключается в фигурные скобки.

2.

Разветвляющийся алгоритм
Разветвляющийся алгоритм – это
алгоритм, в котором в зависимости от
условия выполняется либо одна, либо
другая последовательность действий.
Самый простой пример реализации
разветвляющегося алгоритма – если на
улице идет дождь, то необходимо взять
зонт, иначе не брать зонт с собой.
Пример. Напишите программу, которая
запрашивает у пользователя возраст.
Если он равен или больше 18,
программа
выводит
приветствие,
увеличивает
значения
счётчика
посетителей на 1 и прощается, а если
меньше — сразу прощается и
завершает работу.

3.

Здесь условие конструкции if представляет выражение a == 8, то есть мы
сравниваем, равно ли значение переменной a числу 8. И это условие верно и
возвращает true. Соответственно будет выполняться единственная инструкция
из блока if, которая выведет на консоль строку "a == 8".

4.

Если блок инструкций состоит из одной инструкции, то мы можем
не использовать фигурные скобки:
Можно вовсе поместить инструкцию на одной строке с условием:

5.

Также мы можем использовать полную форму конструкции if, которая включает
оператор else:
После оператора else мы можем определить набор инструкций, которые
выполняются, если условие в операторе if возвращает false. То есть если условие
истинно, выполняются инструкции после оператора if, а если это выражение ложно, то
выполняются инструкции после оператора else.

6.

7.

Задание 7
Напишите программу, которая запрашивает целое
число, и если оно положительное - пишет "YES", в
противном случае - "NO".

8.

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

9.

Подобных альтернативных условий с помощью выражения else if можно вводить
больше одного:

10.

Если программист не указал скобки для блока стейтментов if или else, то компилятор
неявно сделает это за него. Таким образом, следующее:

11.

Если в блоке if или else или else-if необходимо выполнить только одну инструкцию, то
фигурные скобки можно опустить:

12.

Использование логических операторов в ветвлениях if/else
Также вы можете проверить сразу несколько условий в ветвлениях if/else,
используя логические операторы:

13.

Задание 1

14.

15.

16.

Задачи 4

17.

Вложенные ветвления if/else
Одни стейтменты if могут быть вложены в другие стейтменты if:

18.

В программе, приведенной выше, мы можем наблюдать
потенциальную ошибку двусмысленности оператора else. К
какому if относится оператор else: к внешнему или к
внутреннему?
Дело в том, что оператор else всегда относится к последнему
незакрытому оператору if в блоке, в котором находится сам else.
Т.е. в программе, приведенной выше, else относится к
внутреннему if.
Чтобы избежать таких вот неоднозначностей при вложенности
операторов условного ветвления, рекомендуется использовать
блоки стейтментов (указывать скобки).
Например, вот та же программа, приведенная выше, но уже без
двусмысленности:

19.

Теперь понятно, что оператор else относится к внутреннему оператору if.

20.

Использование скобок также позволяет явно указать привязку else к внешнему
стейтменту if:
Используя блоки стейтментов, мы уточняем, к какому if следует прикреплять
определенный else. Без блоков оператор else будет прикрепляться к ближайшему
незакрытому оператору if.

21.

Основные использования ветвлений if/else
Ветвления if/else активно используются для проверки ошибок. Например, чтобы
вычислить квадратный корень значения, параметр, который передается в функцию для
вычисления, — обязательно должен быть положительным:

22.

Ветвления if/else также обычно используют для выполнения простых математических
операций. Например, рассмотрим функцию min(), которая возвращает минимальное
из двух чисел:

23.

Тернарный оператор
Тернарный оператор в некотором роде похож на конструкцию if-else. Он
принимает три операнда в следующем виде:
Первый операнд представляет условие. Если это условие верно (равно true), тогда
выбирается/выполняется второй операнд, который помещается после символа ?.
Если условие не верно, тогда выбирается/выполняется третий операнд, который
помещается после двоеточия.

24.

Эта функция настолько проста, что её можно записать с помощью условного
тернарного оператора:

25.

26.

Здесь первым операндом тернарного оператора является условие a > b. Если это
условие верно, то возвращается второй операнд - результат выражения a - b. Если
условие не верно, то возвращается третий операнд - a + b. И возвращенный операнд
присваивается переменной c.

27.

Тернарный оператор не обязательно должен возвращать некоторое значение, он
может просто выполнять некоторые действия. Например:
Здесь тот же первый операнд-условие. Если оно верно, выполняется второй операнд std::cout << a-b, если нет, то третий операнд - std::cout << a+b.

28.

В рамках одного тернарного оператора можно комбинировать несколько других.
Например:
Здесь условие представляет выражение a < b. Если оно верно, то возвращается второй
операнд - строка "a is less than b". Но если условие не верно, то возвращается третий
операнд, который, в свою очередь, представляет другой тернарный оператор (a == b ?
"a is equal to b" : "a is greater than b"). Здесь опять же оценивается условие-первый
операнд a == b. Если оно верно, то возвращается строка "a is equal to b". Если нет, то
строка - "a is greater than b".

29.

Задачи 5
English     Русский Rules