Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Логічні Оператори | Керуючі Структури
Practice
Projects
Quizzes & Challenges
Вікторини
Challenges
/
Вступ до Golang

bookЛогічні Оператори

Свайпніть щоб показати меню

Ще один клас операторів відомий як логічні оператори. На відміну від інших операторів, які працюють з числовими значеннями, логічні оператори призначені для роботи з булевими значеннями. Існує три логічних оператори:

ОператорЛогіка
!НЕ
||АБО
&&І

Оператор НЕ (!) використовується для заперечення (інверсії) булевого виразу. Ось простий приклад з використанням if-оператора:

index.go

index.go

copy
12345678
package main import "fmt" func main() { if (false) { fmt.Println("Print if True") } }

У наведеному вище коді оператор Print не буде виконано, оскільки умова за замовчуванням має значення false. Проте, якщо додати оператор NOT до виразу, умова буде інвертована і, відповідно, дорівнюватиме true:

index.go

index.go

copy
12345678
package main import "fmt" func main() { if (!false) { fmt.Println("Print if True") } }

Можна також використовувати оператор NOT (!) у складніших випадках. Однак перед запереченням необхідно взяти вирази в дужки. Наприклад, якщо потрібно заперечити 3 > 4, слід записати !(3 > 4):

index.go

index.go

copy
12345678
package main import "fmt" func main() { if (!(3 > 4)) { fmt.Println("Print if True") } }

Оператор OR (||) оцінює два операнди та повертає true, якщо хоча б один з операндів дорівнює true.

Примітка

Операнд — це значення або вираз, який використовується як вхідне значення для оператора у виразі або інструкції. Наприклад, у виразі 1 + 2 значення 1 і 2 є операндами. У випадку логічних операторів операндом завжди є булевий вираз або значення.

Нижче наведено приклад, що ілюструє базове використання логічних операторів:

index.go

index.go

copy
1234567
package main import "fmt" func main() { fmt.Println(true || false) fmt.Println(false || false) }

Перше твердження виводить true, оскільки один з операндів у виразі true || false дорівнює true. Натомість друге твердження виводить false, оскільки обидва операнди у цьому виразі дорівнюють false. Нижче наведено таблицю істинності для логічної операції OR:

Примітка

Таблиця істинності — це логічне представлення, яке відображає всі можливі комбінації вхідних значень та їх відповідні вихідні значення.

InputOutput
true || truetrue
true || falsetrue
false || truetrue
false || falsefalse

Можна об'єднувати кілька операндів за допомогою логічного оператора OR. У цьому випадку вираз обчислюється зліва направо:

index.go

index.go

copy
123456
package main import "fmt" func main() { fmt.Println(false || false || true || false) }

Порядок обчислення для наведеного виразу наступний:

Примітка

За замовчуванням усі логічні вирази обчислюються зліва направо.

Логічний оператор І (&&) подібний до оператора АБО (||), але повертає true лише тоді, коли обидва операнди мають значення true. Таблиця істинності для логічної операції І (&&) наведена нижче:

InputOutput
true && truetrue
true && falsefalse
false && truefalse
false && falsefalse

Нижче наведено складніший приклад, який демонструє практичне використання логічних операторів. Зверніть увагу на код і спробуйте зрозуміти, як він працює:

index.go

index.go

copy
1234567891011
package 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:

question mark

Який з наступних виразів можна використати в операторі if для перевірки, чи є фігура квадратом на основі її width та height?

Select all correct answers

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 3. Розділ 4

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Секція 3. Розділ 4
some-alt