Логические операторы
Часть раздела Основы путешествия по Solidity на Coddy. Урок 17 из 53.
Объединяйте логические условия с помощью && для И и || для ИЛИ. Для И обе стороны должны быть истинными. Для ИЛИ хотя бы одна сторона должна быть истинной. Поставьте ! перед логическим значением, чтобы инвертировать его. Скобки упрощают чтение сгруппированных сравнений.
Инструкции в этом фрагменте выполняются внутри предоставленной функции main.
bool hasPass = true;
bool paused = false;
console.log(hasPass && !paused);Пропуск присутствует, а флаг паузы имеет значение false, поэтому после отрицания paused выполнены оба требования. Операторы AND и OR используют сокращённое вычисление: правая часть вычисляется только тогда, когда она может изменить результат.
AND требует выполнения обоих условий; OR требует выполнения хотя бы одного условия.
Задание
ЛегкоПосетитель может войти только тогда, когда ticket имеет значение true, а closed — значение false. Выведите, разрешён ли вход.
Тесты передают аргументы в main в следующем порядке: bool ticket, bool closed. Каждый тест начинается с нового состояния контракта.
Используйте console.log для вывода требуемого результата. Выводите только запрошенные значения, по одному в строке, без дополнительных меток, если только задание явно их не требует.
Попробуйте сами
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
function main(bool ticket, bool closed) external view {
// Напишите ваше решение здесь.
}
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
2Переменные и типы
Беззнаковые целые числаВвод и выводЗнаковые целые числаЛогические значенияСтроки в памятиКарточка профиля5Функции
Параметры функцийВозврат значенийЧистые функцииВызовы вспомогательных функцийПовторно используемые вычисленияПотренируйтесь самостоятельно: Песочница Solidity