Similar presentations:
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.
Задание 114.
15.
16.
Задачи 417.
Вложенные ветвления 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".
programming