Что такое условный оператор в программировании
Перейти к содержимому

Что такое условный оператор в программировании

  • автор:

Оператор условного ветвления if

Оператор условного ветвления if позволяют принять программе решение, в зависимости от результата проверки условия. Если условие истинно (т. е. равно true ), оператор в теле if выполняется, после чего выполняется следующий по порядку оператор. Если условие ложно (т. е. равно false ), оператор в теле if не выполняется и сразу же выполняется следующий по порядку оператор.

Условный оператор или оператор выбора if записывается в двух формах:

  • краткая форма ( if ),
  • полная форма ( if else ).

Краткая форма оператор условного ветвления if позволяет определить действие только при истинности условия.

if(условие)
<
тело условного оператора
>

Читается так: «Если условие истинно, то выполняется тело условного оператора». Фигурные скобочки тела условного оператора можно опускать, если при истинности условия выполняется один оператор. Например:

Чтобы код программы был более понятен, рекомендуется всегда прописывать фигурные скобочки.

Полная форма оператор условного ветвления if else позволяет определить действие, когда условие истинно и альтернативное действие, когда условие ложно.

if (условие)
<
операторы 1;
> else
<
операторы 2;
>

Читается так: «Если условие истинно, то выполняются операторы 1, иначе (т. е. условие ложно) выполняются операторы 2».

Обратите внимание на то, как записан оператор if else . Слово else сдвинуто вправо для того чтобы программный код был понятен и его было удобно читать.

Проверяемое условие может быть любым логическим выражением. Логические выражения могут быть образованы операциями отношения (см. табл. 1) и логическими операциями.

Операции отношения C++

Операция Обозначение Условие Краткое описание
равно == a == b a равно b
не равно != a != b a не равно b
больше > a > b a больше b
меньше < a < b a меньше b
больше или равно >= a >= b a больше или равно b
меньше или равно <= a <= b a меньше или равно b

Пробелов в знаках "==" , "!=" , ">=" , "<=" , быть не должно. Нельзя путать операцию = (операция присваивания) и операцию == (операция равенства) так как это приводит к логическим ошибкам.

Логические операции С++

Операции Обозначение Условие Краткое описание
логическое
И
&& (a == 3)&& (b > 4) Составное условие истинно, если истинны оба простых условия
логическое
ИЛИ
|| (a == 3) || (b > 4) Составное условие истинно, если истинно, хотя бы одно из простых условий
логическое
НЕ
! !( a == 3) Условие истинно, если a не равно 3

Рассмотрим примеры использования оператора if .

Пример 1: Сравнить два числа и результат вывести на экран.

Рис. 1 — Результаты выполнения программы (пример 1) для различных входных данных

Пример 2: Реализуем эту же задачу (пример 1), с использованием if else .

Рис. 2 — Результаты выполнения программы (пример 2) для различных входных данных

Пример 3: Составить программу для нахождения значение y :

В данной задаче возможны три случая:

  • х меньше 0;
  • х лежит в пределах от 0 (включая 0) до 30;
  • х больше или равен 30.

Во втором случае необходимо проверить истинность двух простых условий:

  • x ≥ 0,
  • х < 30.

Всё проверяемое условие (0≤ x < 30) будет истинно, если истинны два простых условия. Для объединения нескольких простых условий в одно составное используется логическая операция И: (x >= 0) && (x < 30) .

Исходный код программы:

Пусть пользователь ввел число 42. Первый оператор if проверяет условие: «Если х (42 в нашем случае) < 0». Но так как 42 > 0 условие ложно мы переходим к первому оператору else . Здесь второй оператор if проверяет, входит ли число 42 в заданный интервал. Но так как число 42 не входит в заданный интервал, то условие ложно. Переходим ко второму оператору else , где находится последний оператор if . Здесь выполняется проверка х ≥30. Так как условие истинно, выполняется вычисление y=x 2 .

Рис. 3 — Результаты выполнения программы (пример 3) для различных входных данных

Последний оператор if можно не писать, так как условие х ≥ 30 будет выполняться, если результаты предыдущих проверок были ложными. В этом случае проверка условий будет следующим:

Рис. 5 — —>

Условный оператор

Условный оператор позволяет проверить некоторое условие и в зависимости от результатов проверки выполнить то или иное действие.

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

Условный оператор позволяет выбрать одно из двух действий. Существует 2 вида условного оператора:

1) if <условие> then <оператор 1> — неполная форма;

2) if <условие> then < оператор 1> else < оператор 2> — полная форма;

где if, then, else – зарезервированные слова («если», «то», «иначе»); оператор 1,оператор 2 – любые операторы языка Pascal.

Операторы бывают простые и составные.

Простой оператор состоит из одного оператора.

Если при некотором условии надо выполнить определенную последовательность операторов, то их объединяют в один составной оператор. Составные операторы заключаются в операторные скобки begin и end.

Условный оператор будет иметь вид:

Пример. Составить программу, определяющую наименьшее значение из двух чисел.

Вложенные операторы ветвления

Когда после ключевых слов then или else вновь используются условные операторы, они называются вложенными. Число вложений может быть произвольно, при этом действует правило:else всегда относится к ближайшему оператору if, для которого ветка else еще не указана, однако это можно изменить с помощью операторных скобок.

Оператор множественного ветвления (оператор выбора)

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

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

В общем случае оператор имеет вид:

где case (выбор), of (из ), end (конец) – зарезервированные слова;

СЕЛЕКТОР – переменная или выражение порядкового типа;

ОПЕРАТОР – любой оператор языка, в том числе и составной;

МЕТКА – список значений выражения СЕЛЕКТОР или одно его значение.

Тип МЕТКИ совпадает с типом СЕЛЕКТОРА и состоит из любого числа отделенных друг от друга запятыми констант или диапазонов, за которыми следует двоеточие, например:

Диапазоны записываются как две константы, отделенные друг от друга разделителем диапазона ‘..’. MЕТКА ВАРИАНТА – необычная метка: это не обязательно целое число, она не описывается в разделе label, на нее нельзя ссылаться в операторе goto.

ОПЕРАТОР, который следует за МЕТКОЙ, выполняется, если значение СЕЛЕКТОРА равно одной из констант или если он лежит внутри одного из диапазонов. В противном случае будет выполняться оператор, следующий за case.

Селектор иногда называют ключом выбора.

Пример. Определить день недели по его номеру.

Следует помнить, что все константы из списка выбора должны быть различны.

https://amdy.su/wp-admin/options-general.php?page=ad-inserter.php#tab-8

Любому из операторов списка выбора может предшествовать не одна, а несколько констант выбора, разделенных запятыми. Например, следующая программа при вводе одного из символов ‘y’ или ‘Y’ выведет на экран «Да», а при вводе ‘n’ или ‘N’ – слово «Нет».

Пример программы с использованием Case of с несколькими переменными.

Пример программы, которая по заданному символу определяет, к какой группе он относится.

Основные синтаксические конструкции и ветвление: If…else…then

Программирование требует от пользователя определенных познаний в сфере выбранного языка. Большинство из них поддерживает использование так называемых условных операторов. Они в той или иной форме присутствуют во всех ЯП.

Далее предстоит изучить конструкцию the if else then и условные операторы. Эта информация пригодится как новичкам, так и более опытным разработчикам. Она должна быть усвоена каждым, кто планирует заниматься созданием программного обеспечения и игр. Примеры будут приведены на the Pascal и the JavaScript.

Условные операторы

Условный оператор – основа любого языка разработки. С его помощью значение некоторого выражения принимается за определение дальнейшего поведения приложения. Через the operator происходит выбор действия из нескольких предложенных.

В основе работы оператора (не только состоящего из IF) заложена булева логика. Она подразумевает сведение любых утверждений к двум вариантам:

  • истина (the true);
  • ложь (the false).

Если условие истинно, приложение отправляться работать по одному алгоритму, если ложно – по другому. Это приводит к тому, что в каждый момент времени программное обеспечение выбирает алгоритм из двух направлений. Существуют более сложные условия. Они базируются на последовательном прохождении элементарных двоичных условий.

Разновидности

Условных операторов много. Каждый язык поддерживает их в той или иной степени. Основными конструкциями выступают ветвления. Они могут быть:

  • постфиксными;
  • тернарными;
  • с одной веткой;
  • с двумя ветвями;
  • с поддержкой нескольких ветвей (if elseif else или if else then);
  • множественного выбора – switch.

Отдельно выделяются циклы:

  • while;
  • for;
  • foreach;
  • бесконечные.

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

Работа с If

Перед изучением if else then необходимо рассмотреть более простые варианты ветвлений. В противном случае разработчик рискует запутаться и получить «на выходе» совершенно непредсказуемый результат.

Конструкция «с одной веткой» – элементарный вариант ветвления. Заданная операция будет обрабатываться, если соблюдено то или иное условие. В случае с the JavaScript форма представления ветвления будет следующей:

Сначала здесь задается ключевое слово IF (без else и then). Далее прописывается условие (condition), а в фигурных скобках указывается реализуемый алгоритм. Блок выполняется, если результат condition становится истиной. В противном случае управление переходит к следующему написанному в программном обеспечении фрагменту.

В the Pascal соответствующий вариант рассматривается как неполный условный оператор. Его блок схема имеет следующую форму реализации:

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

Две ветви

Следующий вариант тоже является достаточно распространенным у большинства языков. Это двойное ветвление. В разных ЯП отмечается по-разному. В основном:

  • If условие else;
  • If условие then.

Соответствующая конструкция поддерживает несколько блоков кода:

  • если условие является the true, выполняется алгоритм1;
  • в противном случае обрабатывается алгоритм2.

В the Pascal if then – это тоже неполное ветвление. Примеры:

Здесь, если введенное значение переменной a = 7, на экране появится приветствие. В противном случае ничего не происходит.

В данном фрагменте на экране при соблюдении указанного условия в консоль будет выведено не только приветствие, но и прощание. Это связано с тем, что writeln(‘До встречи’) не имеет отношения к ветвлению.

Примеры реализации в the JavaScript конструкции if then будут выглядеть несколько иначе. Общая форма записи:

Чтобы увидеть, как работает данный фрагмент, значение переменной рекомендуется сначала установить на нечетное (здесь оно по умолчанию = 5), а затем – поменять на четное. На экране будет появляться запись, характеризующая тип введенного числа.

Операторные скобки

В the Pascal, работая с записями типа if else then необходимо использовать операторные скобки. Они включают в себя:

  • begin;
  • end if.

Они помогают грамотно использовать ветвление. Ранее приведенный пример будет работать корректно только при наличии операторных скобок. Они указывают на начало и конец алгоритмов, относящихся к тому или иному оператору.

В приведенном выше фрагменте при if a = 10 then… ничего не произойдет. Если указать a = 7, на дисплее появится и приветствие, и прощание.

Составные условия

В the Pascal могут использоваться составные (сложные) условия. Такой подход встречается и в других языках разработки. Чтобы сформировать составное условие, необходимо применять:

  • and – составное условие истинно, когда все его простые составляющие являются true;
  • or – составное условие истинно, когда таким является хотя бы одно его составное условие.

Он помогает отыскать максимальное среди трех чисел. Аналогичным образом составные конструкции используются в других языках разработки.

Множественное ветвление

The JavaScript и The Pascal, а также другие ЯП поддерживают множественное ветвление. Такой вариант иногда называется «полным оператором». Он подразумевает создание инструкций с несколькими «ветками». Встречается, когда требуется проверить разнообразные условия.

В the JS форма записи будет такой:

Соответствующий фрагмент if else then работает так:

  1. Сначала проверяется condition1. Если оно истинно, реализовывается первый блок кода.
  2. При the condition1 = false происходит проверка condition2. Присвоенный ему алгоритм работает, когда результат расчетов = true. В противном случае программа переходит к condition3 и так далее.
  3. Если все условия – это ложь, система будет реализовывать последний написанный блок.

В the Pascal if else then выглядит схематично так:

Некоторые разработчики называют соответствующую концепцию двойным ветвлением. Пример:

В соответствующем операторе if then перед записью …else…точка с запятой не ставится. Зато программисту придется использовать операторные скобки.

Тернарный оператор и JS

Тернарный оператор – это выражение, возвращающее то или иное значение. Сокращенная форма записи then else. В the JavaScript используется следующий вариант реализации:

В случае с Pascal достаточно использовать сокращенную форму записи условного оператора. В приведенном выше примере поддерживаются три операнда:

  • первое выражение;
  • второе выражение;
  • проверяемое системой условие.

Для разделения условия и выражений необходимо применять символы «?», «:». Если condition = true, выполняется expression1, в противном случае – expression2.

Работа со switch

Оператор if then в большинстве языков разработки очень легко использовать. Кроме обычного ветвления можно задействовать выбор варианта из нескольких предложенных. Для этого используется конструкция switch.

Выбор алгоритма действий базируется на основании полного совпадения результатов расчетов, записанный в case. В случае с JS форма записи будет такой:

Раздел default не является обязательным. Он встречается тогда, когда необходимо указать алгоритм, реализующийся, если ни одно case не обнаружено. Это своеобразная замена if then.

Можно заметить, что в записи поддерживается break. Данный компонент тоже не является обязательным. Он используется в switch для непосредственного прерывания. После его обработки управление переходит к инструкциям, написанным после условного оператора. В противном случае может образоваться цикл, который приведет к неправильной работе кода.

Здесь можно увидеть больше примеров реализации изученной темы на Pascal. Досконально условные операторы и их особенности помогут рассмотреть специальные компьютерные дистанционные курсы.

Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в Otus!

Урок 6. Основы программирования. Условия

Условия необходимы при реализации алгоритма «ветвление»: чтобы что-то произошло, необходимо выполнение каких-то условий. В программировании они выражаются специальными конструкциями – условными операторами – и являются одним из элементов управления процессом программы.

Условные операторы

Условные операторы – это специальные конструкции, благодаря которым в программе происходит ветвление в зависимости от условий. Программа принимает логическое решение, выбор, в зависимости от которого выполняет те или иные действия: если так, то идём сюда, если иначе, то сюда.

Подбробнее об алгоритмах мы говорили в Уроке 1.

Чтобы программа смогла осуществить нужный выбор, программисту необходимо:

1. Задать в коде одно или более условий.

2. Задать одно или несколько действий, которые программа осуществит, если одно из условий определено как истина «true» или если все другие определены как ложь «false».

Справка! На основании результатов логического выражения – «true» или «false» – принимается решение, какую часть программы выполнять далее. Это и есть алгоритм ветвления.

Чтобы осуществить этот алгоритм, в языках программирования существуют специальные операторы условий. В JavaScript, как и в большинстве языков программирования, они делятся на три вида:

Единичный

Для этого используется конструкция if… – логическое выражение, в котором производится сравнение данных с 1 условием и выбирается дальнейшее действие. При результате true процесс выполняется дальше, при false выполняется следующий блок кода.

Рассмотрим, как это работает:

1. Создадим переменную year со значением 2020:

Не забывайте ставить «;» в конце строки в JS.

2. Пропишем условие «если год не равен 2020, то выведи в консоль «А вот и нет! Год другой». Для этого после оператора if в круглых скобках необходимо указать условие, а затем в фигурных скобках вариант кода, который выполнится, если это условие определится как верное:

3. Во всех других случаях укажем вывести фразу «Скоро или уже 2020!»:

4. Запустим программу и увидим в консоли результат:

Поскольку мы ввели значение переменной 2020, то условие if «если year не равно 2020» не сработало. Мы увидели только фразу «Скоро или уже 2020!», которую задали выводить в консоль в любом случае.

5. Изменим значение переменной year на 2019 и заново запустим программу. В этом случае увидим другой результат:

Теперь условие стало истинным (2019 не равно 2020) и в консоль выводятся оба сообщения: определённое внутри оператора if «А вот и нет! Год другой» и «Скоро или уже 2020!».

Двойной

Здесь используется конструкция if… else… – если проверяемое условие истинно «true», то выполняется блок команд, указанный после if. В противном случае – блок команд, указанный после else.

При этом у программы есть только 2 возможные ветви.

Добавим в рассмотренный выше пример с оператором if вторую ветку, которая при ложном значении проверяемого условия выведет в консоль строку «Всё верно! Уже 2020!»:

Увидим в консоли результат:

Всё сработало правильно: так как значение переменной 2020, то выполняется блок else, а не if.

Множественный

Множественный выбор в JavaScript выражается несколькими конструкциями:

else if;

switch case.

При множественном выборе определяется несколько условий, а также действия, которые компьютер выполнит при истинности каждого из условий.

Логические выражения проверяются друг за другом по веткам. Программа перейдет на ту ветку, на которой результат станет истинным «true».

Else if

Начнём с оператора else if. В отличие от оператора else, его допускает указывать в условном операторе несколько раз, образуя множество веток. Возьмём переменную year и создадим несколько условий:

Справка! Последняя ветка строится с помощью оператора else, а не else if, так как она не содержит дополнительных условий. В неё мы записываем ответ, который получает пользователь, если ни одно из условий выше не выполняется.

Сейчас значение переменной year равно 2020. Поэтому мы перешли на ветку, где указано условие (year == 2020) и получили ответ «Да, но скоро 2021!».

Поменяем значение переменной на 2022, чтобы оно соответствовало условию (year > 2021) и увидим результат:

Если же мы присвоим переменной значение меньше 2020 года, то оно не будет соответствовать ни одному из условий и запустится ветка else:

Switch case

Теперь попробуем использовать условную конструкцию switch. Синтаксис такой:

1. Берём созданную переменную year и создаем switch, передав ему значение year:

2. Внутри фигурных скобок записываем все варианты ветвей друг за другом, только вместо else if используем ключевое слово case. Здесь не нужно помещать каждую ветку в отдельные фигурные скобки, как в else if.

Внимание! Необходимо ставить двоеточие между условием и действием. Это похоже на конструкцию «Если. то» в русском языке. И в данном случае двоеточие заменяет союз «то».

Вот как выглядит код:

3. Для обозначения ветки, которая выполняется в случае несоответствия ни одному значению case, вместо else используем слово default. А после каждого условия необходимо прописать команду break.

Справка! Команда break означает, что если условие выполнено, необходимо прекратить работу и произвести соответствующее условию действие. Если его не поставить, программа продолжит сравнивать условия и выводить дополнительно иные значения до ближайшего break или до конца всех условий switch.

4. Запустим созданный нами switch со значением переменной year 2020 и посмотрим на результат в консоли:

Если бы мы забыли написать слово break после каждого условия, то получили бы результат:

С помощью этого оператора получится только сопоставить равенство переменной, указанной в скобках после switch, с конкретными значениями после слов case.

Чтобы через switch проверить больше, меньше, больше или равно, меньше или равно, конструкцию придётся изменить вот так:

Результат в консоли:

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

Но чаще всего подобные неравенства прописываются через конструкцию else if.

Switch удобен, если вам предстоит описать множественный выбор с точными значениями. Через else if пришлось бы прописывать сравнение переменной для каждого условия, а конструкция switch по умолчанию сравнивает значение переменной со значением в case.

Домашнее задание

1. Представьте, что вы просите пользователя ответить на вопрос: «Сколько ног у паука?». Правильный ответ – 8. Пропишите несколько возможных сообщений для пользователя, в зависимости от введённых им значений, используя конструкцию else if:

— если пользователь ввёл 8, то он получит сообщение «Правильно!»;

— если меньше 8, то «Нет! Это слишком мало.»;

— если любое другое число, то «Нет! Это очень много.».

2. Теперь попросим пользователя вычислить результат простого арифметического выражения 3+2. Пропишите условия, используя конструкцию switch case:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *