Что представляет собой логический тип данных? Какие операции над ним возможны?
Логический тип данных — это тип данных, значения которого отражают истинность или ложность некоторого утверждения. Обычно он имеет два значения:
- истина;
- ложь.
В языках программирования эти значения часто записываются как true и false, например в JavaScript, TypeScript, C++, Java, Python и других языках.
Логический тип используется в условиях, циклах, проверках, фильтрации данных, сравнении значений и управлении ходом выполнения программы.
Например:
const isAdult = age >= 18;
if (isAdult) {
console.log('Пользователь совершеннолетний');
}const isAdult: boolean = age >= 18;
if (isAdult) {
console.log('Пользователь совершеннолетний');
}package main
import "fmt"
func main() {
isAdult := age >= 18
if isAdult {
fmt.Println("Пользователь совершеннолетний")
}
}public class Example {
public static void main(String[] args) {
var isAdult = age >= 18;
if (isAdult) {
System.out.println("Пользователь совершеннолетний");
}
}
}isAdult = age >= 18
if isAdult:
print('Пользователь совершеннолетний')Здесь выражение age >= 18 возвращает логическое значение: либо true, либо false.
Основные операции над логическим типом
1. Отрицание
Операция НЕ меняет значение на противоположное.
| A | НЕ A |
|---|---|
| истина | ложь |
| ложь | истина |
В программировании часто используется оператор !.
const isBlocked = false;
if (!isBlocked) {
console.log('Доступ разрешен');
}const isBlocked = false;
if (!isBlocked) {
console.log('Доступ разрешен');
}package main
import "fmt"
func main() {
isBlocked := false
if !isBlocked {
fmt.Println("Доступ разрешен")
}
}public class Example {
public static void main(String[] args) {
var isBlocked = false;
if (!isBlocked) {
System.out.println("Доступ разрешен");
}
}
}isBlocked = False
if not isBlocked:
print('Доступ разрешен')---
2. Логическое И
Операция И возвращает истину только тогда, когда оба условия истинны.
| A | B | A И B |
|---|---|---|
| ложь | ложь | ложь |
| ложь | истина | ложь |
| истина | ложь | ложь |
| истина | истина | истина |
В программировании часто используется оператор &&.
const hasLogin = true;
const hasPassword = true;
if (hasLogin && hasPassword) {
console.log('Можно выполнить вход');
}const hasLogin = true;
const hasPassword = true;
if (hasLogin && hasPassword) {
console.log('Можно выполнить вход');
}package main
import "fmt"
func main() {
hasLogin := true
hasPassword := true
if hasLogin && hasPassword {
fmt.Println("Можно выполнить вход")
}
}public class Example {
public static void main(String[] args) {
var hasLogin = true;
var hasPassword = true;
if (hasLogin && hasPassword) {
System.out.println("Можно выполнить вход");
}
}
}hasLogin = True
hasPassword = True
if hasLogin and hasPassword:
print('Можно выполнить вход')---
3. Логическое ИЛИ
Операция ИЛИ возвращает истину, если хотя бы одно из условий истинно.
| A | B | A ИЛИ B |
|---|---|---|
| ложь | ложь | ложь |
| ложь | истина | истина |
| истина | ложь | истина |
| истина | истина | истина |
В программировании часто используется оператор ||.
const isAdmin = false;
const isOwner = true;
if (isAdmin || isOwner) {
console.log('Доступ к настройкам разрешен');
}const isAdmin = false;
const isOwner = true;
if (isAdmin || isOwner) {
console.log('Доступ к настройкам разрешен');
}package main
import "fmt"
func main() {
isAdmin := false
isOwner := true
if isAdmin || isOwner {
fmt.Println("Доступ к настройкам разрешен")
}
}public class Example {
public static void main(String[] args) {
var isAdmin = false;
var isOwner = true;
if (isAdmin || isOwner) {
System.out.println("Доступ к настройкам разрешен");
}
}
}isAdmin = False
isOwner = True
if isAdmin or isOwner:
print('Доступ к настройкам разрешен')---
4. Исключающее ИЛИ
Операция исключающее ИЛИ истинна тогда, когда истинно ровно одно из двух условий.
| A | B | A XOR B |
|---|---|---|
| ложь | ложь | ложь |
| ложь | истина | истина |
| истина | ложь | истина |
| истина | истина | ложь |
Например, можно сказать: «либо один вариант, либо другой, но не оба одновременно».
---
5. Операции сравнения
Результатом операций сравнения тоже является логическое значение:
5 > 3 // true
10 === 10 // true
7 !== 2 // true
4 <= 1 // false5 > 3 // true
10 === 10 // true
7 !== 2 // true
4 <= 1 // falsepackage main
func main() {
5 > 3 // true
10 == 10 // true
7 != 2 // true
4 <= 1 // false
}public class Example {
public static void main(String[] args) {
5 > 3 // true
10 == 10 // true
7 != 2 // true
4 <= 1 // false
}
}5 > 3 # True
10 == 10 # True
7 != 2 # True
4 <= 1 # FalseК таким операциям относятся:
- равно;
- не равно;
- больше;
- меньше;
- больше или равно;
- меньше или равно.
Где используется логический тип?
Логический тип применяется:
- в условных операторах;
- в циклах;
- при проверке данных;
- при работе с флагами состояния;
- в логических выражениях;
- в алгоритмах принятия решений.
Например, флаг isLoading может показывать, загружается ли сейчас информация:
let isLoading = true;let isLoading: boolean = true;package main
func main() {
isLoading := true
}public class Example {
public static void main(String[] args) {
var isLoading = true;
}
}isLoading = TrueВывод
Логический тип данных нужен для представления истинности или ложности утверждений. Он является основой условий, циклов и логики программ.
Источники
- Горбатов В.А., Горбатов А.В., Горбатова М.В. Дискретная математика: Учебник для студентов втузов. - М.: АСТ, 2014. - 448 с.
- Горбатов В.А., Горбатов А.В., Горбатова М.В. Теория автоматов: учебник для втузов. - М.: АСТ, 2008. - 559 с.
- Кузнецов О. П. Дискретная математика для инженера. - Санкт-Петербург [и др.]: Лань, 2009.
- Содержание курса лекций «Языки программирования». Кафедра алгоритмических языков ВМК МГУ, 2018.
- Босова Л.Л. Информатика. Базовый курс: учебник для 10-11 классов. - М.: БИНОМ. Лаборатория знаний, 2021.
- Гладкий Ю.Н. Информатика и информационные технологии: учеб. пособие. - М.: КноРус, 2020.