Elementor Header #8

47. Отрицание

1. Введение

Отрицание в C# выполняется с помощью логического оператора ! (логическое НЕ). Этот оператор изменяет булево значение на противоположное:

  • true становится false,
  • false становится true.

Он часто используется в условиях (if, while) и проверках.


2. Использование оператора !

Оператор ! применяется перед булевой переменной или выражением.

Простой пример:

				
					bool isRainy = true;

if (!isRainy)
{
    Console.WriteLine("Можно идти гулять!");
}
else
{
    Console.WriteLine("Лучше взять зонт.");
}
// Выведет: "Лучше взять зонт."

				
			

Здесь !isRainy инвертирует true в false, поэтому программа выполняет код в else.


3. Отрицание в условиях

Часто используется в if, while и do-while циклах.

Пример в if:

				
					bool isAvailable = false;

if (!isAvailable)
{
    Console.WriteLine("Товар отсутствует.");
}

				
			

Если isAvailable == false, оператор !isAvailable превращает его в true, и код выполняется.


Пример в while:

				
					bool isRunning = true;

while (!isRunning)
{
    Console.WriteLine("Программа завершена.");
}

				
			

Так как !isRunning равно false, цикл не выполнится.


4. Отрицание в сложных логических выражениях

Часто ! комбинируется с &&, || и другими логическими операторами.

Пример с && и ||:

				
					bool isWeekend = false;
bool isHoliday = true;

if (!(isWeekend || isHoliday))
{
    Console.WriteLine("Сегодня рабочий день.");
}
else
{
    Console.WriteLine("Можно отдыхать!");
}
// Выведет: "Можно отдыхать!"

				
			

В выражении !(isWeekend || isHoliday):

  • isWeekend || isHoliday дает true,
  • !true превращается в false, поэтому if не выполняется.

5. Отрицание в методах

Оператор ! часто применяется в методах, особенно в проверках.

Пример с методом:

				
					bool IsUserAuthorized()
{
    return false; // Пользователь не авторизован
}

if (!IsUserAuthorized())
{
    Console.WriteLine("Доступ запрещен.");
}

				
			

Так как IsUserAuthorized() возвращает false, !false становится true, и программа выводит "Доступ запрещен.".


6. Двойное отрицание (!!)

В C# двойное отрицание (!!) часто используется для приведения значения к bool.

Пример:

				
					string? userName = "Alex";
bool hasName = !!userName; // Преобразует в булево значение
Console.WriteLine(hasName); // true

				
			

Если userName не null, !!userName превращает его в true.

Заключение

  • ! инвертирует булево значение.
  • Используется в условиях и логических выражениях.
  • Может применяться для приведения к bool (!!value).
  • Улучшает читаемость кода, но не стоит злоупотреблять сложными выражениями.

Логическое отрицание — важный инструмент, позволяющий легко управлять логикой программы в C#.

Тестовое задание

Напишите программу, которая проверяет, может ли пользователь войти в систему:

  • Если isLoggedIn == false, выводится "Вход запрещен."
  • Если isLoggedIn == true, выводится "Добро пожаловать!"

Пример кода:

				
					using System;

class Program
{
    static void Main()
    {
        bool isLoggedIn = false;

        if (!isLoggedIn)
        {
            Console.WriteLine("Вход запрещен.");
        }
        else
        {
            Console.WriteLine("Добро пожаловать!");
        }
    }
}

				
			

Попробуйте написать и запустить этот код, чтобы убедиться в правильности выполнения операций и особенностях работы с числами с плавающей точкой.

logo