Что представляет собой логический тип данных? Какие операции над ним возможны?

Логический тип данных — это тип данных, значения которого отражают истинность или ложность некоторого утверждения. Обычно он имеет два значения:

В языках программирования эти значения часто записываются как 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. Логическое И

Операция И возвращает истину только тогда, когда оба условия истинны.

ABA И 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. Логическое ИЛИ

Операция ИЛИ возвращает истину, если хотя бы одно из условий истинно.

ABA ИЛИ 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. Исключающее ИЛИ

Операция исключающее ИЛИ истинна тогда, когда истинно ровно одно из двух условий.

ABA XOR B
ложьложьложь
ложьистинаистина
истиналожьистина
истинаистиналожь

Например, можно сказать: «либо один вариант, либо другой, но не оба одновременно».

---

5. Операции сравнения

Результатом операций сравнения тоже является логическое значение:

5 > 3      // true
10 === 10  // true
7 !== 2    // true
4 <= 1     // false
5 > 3      // true
10 === 10  // true
7 !== 2    // true
4 <= 1     // false
package 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.