Главная страница » C# » 46. Логические операторы
Логические операторы используются для выполнения операций над булевыми значениями (true
или false
). Они позволяют создавать сложные логические выражения и управлять выполнением кода на основе условий.
Оператор | Описание | Пример |
---|---|---|
&& (логическое И) | Возвращает true , если оба операнда равны true | true && false → false |
` | ` (логическое ИЛИ) | |
! (логическое НЕ) | Инвертирует булевое значение | !true → false |
^ (логическое исключающее ИЛИ) | Возвращает true , если один из операндов равен true , но не оба | true ^ false → true |
&&
)Оператор &&
возвращает true
, если оба условия истинны.
Пример:
bool isAdult = true;
bool hasTicket = false;
if (isAdult && hasTicket)
{
Console.WriteLine("Можно войти.");
}
else
{
Console.WriteLine("Вход запрещен.");
}
// Выведет: "Вход запрещен."
Так как hasTicket == false
, выражение isAdult && hasTicket
возвращает false
.
||
)Оператор ||
возвращает true
, если хотя бы одно из условий истинно.
Пример:
bool isWeekend = false;
bool isHoliday = true;
if (isWeekend || isHoliday)
{
Console.WriteLine("Сегодня выходной!");
}
else
{
Console.WriteLine("Сегодня рабочий день.");
}
// Выведет: "Сегодня выходной!"
Так как isHoliday == true
, выражение isWeekend || isHoliday
становится true
.
!
)Оператор !
меняет значение на противоположное.
Пример:
bool isRainy = true;
if (!isRainy)
{
Console.WriteLine("Можно идти гулять!");
}
else
{
Console.WriteLine("Лучше взять зонт.");
}
// Выведет: "Лучше взять зонт."
Оператор !isRainy
инвертирует true
в false
.
^
)Оператор ^
возвращает true
, если только одно из значений равно true
.
Пример:
bool a = true;
bool b = false;
Console.WriteLine(a ^ b); // true
Console.WriteLine(a ^ a); // false
Console.WriteLine(b ^ b); // false
Работает по принципу:
true ^ false → true
false ^ true → true
true ^ true → false
false ^ false → false
Приоритет выполнения операторов (от более высокого к низкому):
!
(НЕ)&&
(И)||
(ИЛИ)^
(исключающее ИЛИ)Пример приоритета:
bool result = true || false && false;
// Выполняется так: true || (false && false) → true || false → true
Console.WriteLine(result); // true
bool result = (true || false) && false;
// (true || false) → true, затем true && false → false
Console.WriteLine(result); // false
short-circuiting
)C# использует короткое замыкание в операторах &&
и ||
:
&&
: если первый операнд false
, второй не проверяется.||
: если первый операнд true
, второй не проверяется.Пример:
bool Check()
{
Console.WriteLine("Функция вызвана!");
return true;
}
bool result = false && Check(); // Check() не вызывается, так как `false && ...` всегда `false`
Console.WriteLine(result); // false
&&
, ||
, !
, ^
) позволяют строить сложные условия.short-circuiting
) помогает оптимизировать выполнение условий.Логические операторы — важный инструмент для управления потоком выполнения программ в C#.
Напишите программу, которая проверяет, может ли пользователь получить доступ к сервису.
isRegistered == true
и (isAdmin == true
или hasSubscription == true
), доступ разрешен.Пример:
using System;
class Program
{
static void Main()
{
bool isRegistered = true;
bool isAdmin = false;
bool hasSubscription = true;
if (isRegistered && (isAdmin || hasSubscription))
{
Console.WriteLine("Доступ разрешен.");
}
else
{
Console.WriteLine("Доступ запрещен.");
}
}
}
Попробуйте написать и запустить этот код, чтобы убедиться в правильности выполнения операций и особенностях работы с числами с плавающей точкой.
Телефон: +375 33 910-08-92
Email: info@codefor.tech
Адрес: г. Барановичи, ул. Пирогова, д. 7
© 2024-2025 Все права защищены. CodeFor.