Логические операторы Java работают с булевыми значениями (true/false) и чаще всего используются в if и while. В этом интерактивном тренажере Java онлайн вы закрепите три оператора: && (И), || (ИЛИ), ! (НЕ). Важно помнить про короткое замыкание: в выражениях с && и || правая часть может не вычисляться.
a && b— истина, если оба истинны.a || b— истина, если хотя бы один истинный.!a— инверсия.
- Модуль 1: Первая программа и структура
- Модуль 2: Переменные и типы данных
- Объявление и инициализация переменных.
- Примитивы: целые числа (int, long, byte, short).
- Примитивы: дробные числа (double, float).
- Примитивы: логический тип (boolean).
- Примитивы: символьный тип (char).
- String — основы работы со строками.
- Приведение типов (Casting): расширение и сужение.
- Область видимости переменных (Scope).
- Модуль 3: Операторы
- Модуль 4: Управляющие конструкции
- Модуль 5: Массивы и Строки (Advanced)
- Создание и заполнение массива.
- Доступ к элементам по индексу.
- Свойство length и перебор массива.
- Цикл for-each для массивов.
- Многомерные массивы.
- Методы String: length, charAt, isEmpty.
- Манипуляции: substring, concat, replace.
- Сравнение строк: equals vs ==.
- Разделение строк (split) и trim.
- StringBuilder (изменяемые строки).
- Модуль 6: Методы
- Модуль 7: Классы и Объекты (ООП Часть 1)
- Модуль 8: Капсуляция и Модификаторы
- Модуль 9: Наследование и Полиморфизм (ООП Часть 2)
- Модуль 10: Обработка исключений
- Модуль 11: Коллекции и Дженерики
- Модуль 12: Функциональный стиль (Java 8+)
- Модуль 13: Полезные стандарты
1. Вставьте && и || в условия
Дополните фрагмент программы на Java, вставив логические операторы && и || в условия if/else. Код должен корректно решать, можно ли пропустить зрителя в зал: взрослого с билетом, подростка с родителем или по льготному правилу. Заполните все пропуски так, чтобы логика соответствовала комментариям и реальному смыслу проверок.
int age = 16;
boolean hasTicket = true, withParent = true, isWeekend = false;
if (age >= 18 input1S hasTicket) {
System.out.println("Вход без сопровождения");
} else if (age >= 12 input2S age < 18 input3S withParent) {
System.out.println("Вход с родителем");
// льготное правило: с родителем ИЛИ в выходной
} else if (withParent input4S isWeekend) {
System.out.println("Вход по льготному правилу");
} else {
System.out.println("Вход запрещен");
}2. Инверсия условия через !
Дополните фрагмент программы на Java, в котором проверяется возможность входа по возрасту и наличию билета. Необходимо использовать инверсию условия с помощью логического оператора отрицания и круглых скобок, чтобы оператор if выполнялся только при разрешённом входе, а при нарушении хотя бы одного требования срабатывал блок else. Заполните пропуски так, чтобы код компилировался и логика проверки соответствовала комментариям.
public class TicketChecker {
public static void main(String[] args) {
int age = 16;
boolean hasTicket = true;
// Нужно напечатать "Вход запрещён", если посетитель младше 18 или без билета.
// Перепишите проверку так, чтобы if выполнялся только для разрешённого входа.
if (input1S input2S age < 18 || !hasTicket input3S) {
System.out.println("Добро пожаловать!");
} else {
System.out.println("Вход запрещён");
}
}
}3. Ошибка: несуществующий оператор в Java
В этом фрагменте Java-кода в условии if используется несуществующий в языке оператор: вместо стандартного логического оператора применяется словесный аналог. Из-за этого программа не компилируется и не может проверить, можно ли разрешить доступ. Найдите строку с условием и исправьте её так, чтобы проверка возраста и наличия билета выполнялась корректно.
public class Main { public static void main(String[] args) { boolean isAdult = true; boolean hasTicket = true; if (isAdult and hasTicket) { System.out.println("Access granted"); } else { System.out.println("Access denied"); }}4. Сломанное логическое выражение
В этом фрагменте Java-кода программа должна проверить, можно ли выдать доступ пользователю по возрасту и признаку регистрации. В условии оператора if используется логическое выражение с одной синтаксической ошибкой: нарушен формат записи логических операторов. Найдите строку с условием, исправьте ошибку в логическом выражении, чтобы код корректно компилировался и при выполнении выводил сообщение о предоставленном доступе.
public class Main { public static void main(String[] args) { int age = 20; boolean isRegistered = true; if (age >= 18 && && isRegistered) { System.out.println("Access granted"); } }}5. Соберите if с составным условием
Из предложенных строк соберите фрагмент Java-кода: объявите логические переменные isWeekend и isHoliday, затем создайте оператор if с составным условием isWeekend || isHoliday и внутри него выведите сообщение Можно не идти на работу. Лишние строки с другими переменными, условиями и текстами сообщений в решение включать не нужно.
boolean isWeekend = true;boolean isHoliday = false;if (isWeekend || isHoliday) { System.out.println("Можно не идти на работу");}boolean isSick = true;if (!isWeekend && !isHoliday) { System.out.println("Нужно идти на работу");}6. Предскажите результат выражения
Проанализируйте фрагмент кода на Java с несколькими логическими переменными и составным выражением с операторами &&, || и !. Определите, какое булево значение будет выведено в консоль методом System.out.println, учитывая приоритет операторов и наличие скобок, и выберите правильный вариант ответа.
class Main {
public static void main(String[] args) {
boolean isAdult = true;
boolean hasTicket = false;
boolean withParent = true;
System.out.println(isAdult && (hasTicket || withParent) && !false);
}
}7. Найдите все логические операторы
Перед вами фрагмент кода на Java с несколькими булевыми выражениями. Кликните по всем фрагментам кода, которые являются логическими операторами &&, || или !. Не выделяйте операторы присваивания, сравнения и другие символы, которые в этом фрагменте не относятся к логическим операторам.
boolean canLogin(User user) {
boolean isAdult {{=~|~t1}} user.getAge() {{>=~|~t2}} 18;
boolean hasEmail {{=~|~t3}} user.getEmail() {{!=~|~t4}} null;
boolean notBlocked {{=~|~t5}} {{!~|~t6}}user.isBlocked();
if (isAdult {{&&~|~t7}} hasEmail {{&&~|~t8}} notBlocked {{||~|~t9}} user.isAdmin()) {
return true;
}
return false;
}
8. Сопоставьте оператор и смысл
В этом задании из тренажёра по Java для модуля об операторах вам нужно сопоставить выражения с логическими операторами и краткие формулировки их смысла. В левой колонке приведены фрагменты кода на Java, использующие &&, || и !, а также примеры с коротким замыканием. В правой колонке — словесные описания логического И, ИЛИ, НЕ и особенностей вычисления. Сопоставьте элементы левой колонки с соответствующими элементами правой.
boolean result = a > 0 && b > 0;boolean result = a > 0 || b > 0;boolean result = !flag;boolean ok = isValid(user) && sendEmail(user);boolean dataReady = isCached() || loadFromDb();9. Разложите выражения по операторам
Перед вами список логических выражений на Java. В каждом из них используется один из операторов: логическое И (&&), логическое ИЛИ (||) или логическое НЕ (!). Перетащите каждое выражение в контейнер с названием оператора, который в нём используется. Каждый элемент должен оказаться ровно в одной категории.
isAdult && hasTicketx > 0 && x < 100isReady && hasPermissionloggedIn && emailVerifiedisWeekend || isHolidayx == 0 || y == 0hasAccess || isAdminhasBonus || hasDiscount!isEmpty!(x > 10)!flag!!isValid