Урок #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