Логічні Оператори
Свайпніть щоб показати меню
Ще один клас операторів відомий як логічні оператори. На відміну від інших операторів, які працюють з числовими значеннями, логічні оператори призначені для роботи з булевими значеннями. Існує три логічних оператори:
| Оператор | Логіка |
|---|---|
! | НЕ |
|| | АБО |
&& | І |
Оператор НЕ (!) використовується для заперечення (інверсії) булевого виразу. Ось простий приклад з використанням if-оператора:
index.go
12345678package main import "fmt" func main() { if (false) { fmt.Println("Print if True") } }
У наведеному вище коді оператор Print не буде виконано, оскільки умова за замовчуванням має значення false. Проте, якщо додати оператор NOT до виразу, умова буде інвертована і, відповідно, дорівнюватиме true:
index.go
12345678package main import "fmt" func main() { if (!false) { fmt.Println("Print if True") } }
Можна також використовувати оператор NOT (!) у складніших випадках. Однак перед запереченням необхідно взяти вирази в дужки. Наприклад, якщо потрібно заперечити 3 > 4, слід записати !(3 > 4):
index.go
12345678package main import "fmt" func main() { if (!(3 > 4)) { fmt.Println("Print if True") } }
Оператор OR (||) оцінює два операнди та повертає true, якщо хоча б один з операндів дорівнює true.
Примітка
Операнд — це значення або вираз, який використовується як вхідне значення для оператора у виразі або інструкції. Наприклад, у виразі
1 + 2значення1і2є операндами. У випадку логічних операторів операндом завжди є булевий вираз або значення.
Нижче наведено приклад, що ілюструє базове використання логічних операторів:
index.go
1234567package main import "fmt" func main() { fmt.Println(true || false) fmt.Println(false || false) }
Перше твердження виводить true, оскільки один з операндів у виразі true || false дорівнює true. Натомість друге твердження виводить false, оскільки обидва операнди у цьому виразі дорівнюють false. Нижче наведено таблицю істинності для логічної операції OR:
Примітка
Таблиця істинності — це логічне представлення, яке відображає всі можливі комбінації вхідних значень та їх відповідні вихідні значення.
| Input | Output |
|---|---|
true || true | true |
true || false | true |
false || true | true |
false || false | false |
Можна об'єднувати кілька операндів за допомогою логічного оператора OR. У цьому випадку вираз обчислюється зліва направо:
index.go
123456package main import "fmt" func main() { fmt.Println(false || false || true || false) }
Порядок обчислення для наведеного виразу наступний:
Примітка
За замовчуванням усі логічні вирази обчислюються зліва направо.
Логічний оператор І (&&) подібний до оператора АБО (||), але повертає true лише тоді, коли обидва операнди мають значення true. Таблиця істинності для логічної операції І (&&) наведена нижче:
| Input | Output |
|---|---|
true && true | true |
true && false | false |
false && true | false |
false && false | false |
Нижче наведено складніший приклад, який демонструє практичне використання логічних операторів. Зверніть увагу на код і спробуйте зрозуміти, як він працює:
index.go
1234567891011package main import "fmt" func main() { var x int = 99 if (1 <= x && x <= 10 || 90 <= x && x <= 100) { fmt.Printf("The value %d is in the range 1-10 or 90-100", x) } else { fmt.Printf("The value %d is not in the range 1-10 or 90-100", x) } }
Зверніть увагу, що в наведеному вище прикладі використовується декілька операторів і значень для створення складнішої умови. Під час виконання вираз оцінюється відповідно до пріоритету операторів. Оператори з вищим пріоритетом обробляються першими, і важливо розуміти порядок їх обробки. Оператори порівняння мають вищий пріоритет, ніж логічні оператори.
Нижче наведено діаграму, яка ілюструє рейтинг пріоритету логічних операторів:
Наступна діаграма ілюструє, як обчислюється вираз 1 <= x && x <= 10 || 90 <= x && x <= 100:
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат