Урок #3

Логические операторы и операторы сравнения, условный оператор if

Операторы сравнения

В предыдущем уроке мы познакомились с множеством новых типов. Но это ещё не все. Есть ещё один очень интересный тип. Это логический или булевый тип. Если он логический, значит может принимать только значения правда и ложь, что на английском true и false соответственно. Так же как и в двоичной системе, true может быть представлено как 1, а false как 0. Если говорить честно, то некие следы числовой логики в языке C++ сохранилось еще с языка C. То есть ноль — ложь, а все, что не ноль — то правда. Как и в реальной жизни, в программировании слова правда и ложь являются ответами на какой-то вопрос. Например, 5 равно 3? Ответ нет, то есть ложь. В C++ это записывается чуть по-другому, чем в нашем мире. Если бы это был обычный урок математики, мы бы написали 5 = 3. Но что значит эта конструкция в программировании? Выходит, что цифре 5 мы присваиваем значение 3. Бред какой-то! Поэтому был реализован бинарный оператор проверки на равенство ==. Теперь рассмотрим пример программы с этим оператором.

0
Для продолжения нажмите любую клавишу…

В результате выполнения программы мы получили ответ 0, то есть false. Теперь можно проверить больше число, меньше или равно другому в одной программе. Давайте рассмотрим следующий код:

3 5
1
0
0
1
0
Для продолжения нажмите любую клавишу…

В этом примере мы использовали практически все операторы сравнения, которые дети проходят в школе. Если число first меньше second, то мы получим ответ 1 0 0 1 0, если больше – 0 1 0 0 1, а если равно – 0 0 1 1 1. Попробуйте убедиться в этом сами.

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

Мы научились выводить на экран нули и единицы. Но это не красиво! Надо выводить слова true и false, чем мы сейчас и займется. Сам оператор if действует очень просто. Он проверяет данное ему условие на истинность и выполняет некоторые действия, зависимо от результата выполнения условия. Пример использования if показан ниже.

true
Для продолжения нажмите любую клавишу…

Как видим, в условном операторе if есть два блока. Это основной блок, который выполняется при истинности условия, и блок else, который выполняется, если условие ложно. В данном примере мы видим ещё один оператор сравнения !=. Если Вы думаете, что этот оператор означает «не равно», то вы абсолютно правы. А если надо проверить условие два раза? Например надо опередить чётное ли число или меньше ли оно 100. В этом случае мы можем пользоваться конструкцией else if.

32
Your number is the even
Для продолжения нажмите любую клавишу…

Если мы введем чётное число, то получим ответ Your number is the even. Если же введем нечетное число, то ответ будет зависеть от того больше ли оно 100, или меньше. Но вдруг мы хотим вывести сразу два ответа? То бишь вывести, что число чётное и меньше ста. Тогда нам надо написать вместо else if обычный if.

Немного о условии

Ну совсем немного

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

Логические операторы

Так же в языке программирования существуют и специальные операции, которые выполняются с переменными и литералами логического типа. Их всего три: логическое И (&&), логическое ИЛИ (||) и логическое НЕ (!). Данные операции легко понять, если запомнить и главное, понять эту таблицу:

a b a && b a || b !a
0 0 0 0 1
0 1 0 1 1
1 0 0 1 0
1 1 1 1 0

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

В языке С++, как и в некоторых других языках программирования, присутствует тернарный оператор. Это как обычный if, но записывается немного легче: условие?оператор если true:оператор если false. Теперь давайте рассмотрим принцип его работы. Допустим, у нас есть некие переменные x и n. Тогда, зависимо от результата n мы будем присваивать разные значения переменной x. Если число n > 100, то x будет равен 1. Если меньше, либо равно – 2. Это будет записано так: x = n > 100 ? 1 : 2;

Возможные вопросы по теме:

Вопросов еще нет

Добавляйте свои вопросы в комментарии. Лучшие попадут в статью 🙂


Урок #2 Урок #4