Logical Operators Part 3
Часть раздела Основы путешествия по Java на Coddy. Урок 25 из 73.
При проверке нескольких условий компьютер прекращает проверку, как только узнает конечный ответ (Это называется вычислением по короткой схеме).
Например:
int x = 0;
int y = 5;
boolean result = x != 0 && y / x > 2;Здесь x равно 0, поэтому выражение y / x > 2 вычисляться не будет. Если изменить порядок:
boolean result = y / x > 2 && x != 0;Это приведет к ошибке, потому что y будет делиться на 0, что недопустимо в математике.
Этот приём используется для оптимизации вычисления логических выражений. Например:
int a = 0;
int b = 2;
int c = 3;
int d = 5;
boolean result = (a > 0 && b < 2) || (c < -5 && d < 10);В этом примере b < 2 и d < 10 не будут вычисляться, так как a > 0 и c < -5 оба ложны.
Задание
НовичокДавайте создадим программу, чтобы определить, подходит ли день для производства солнечной энергии
Инициализируйте следующие переменные:
isSunnyсо значением truewindSpeedсо значением 5.4temperatureсо значением 23solarPanelOutputсо значением 9isCloudyсо значением false
Создайте одно логическое выражение, которое проверяет ВСЕ эти условия:
- Солнечно
- Скорость ветра меньше 10
- Выработка солнечной панели меньше 15
- Температура выше 20 ИЛИ нет облаков
Попробуйте сами
public class Main {
public static void main(String[] args) {
// Инициализировать переменные
// Замените каждое значение-заполнитель ниже на значение, которое требует задание
boolean isSunny = false;
double windSpeed = 0.0;
int temperature = 0;
int solarPanelOutput = 0;
boolean isCloudy = false;
// Полное логическое выражение
// Замените заполнитель ниже одним выражением, которое объединяет все четыре условия
boolean result = false;
// Не удаляйте строки ниже
System.out.println("Checking conditions for solar energy production...");
System.out.println("1. Is it sunny? " + isSunny);
System.out.println("2. Is wind speed safe? " + (windSpeed < 10));
System.out.println("3. Can panels produce more? " + (solarPanelOutput < 15));
System.out.println("4. Is temperature good OR no clouds? " + (temperature > 20 || !isCloudy));
System.out.println("\nFinal result - Good day for solar energy production: " + result);
}
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Operators Part 1
Arithmetic OperatorsModulo OperatorIncrement/DecrementPost Increment/DecrementArithmetic ShortcutsComparison OperatorsString Comparison5Operators Part 2
Logical Operators Part 1Logical Operators Part 2Recap - Simple LogicLogical Operators Part 3Logical Operators Part 43Variables Part 2
ConstantsNaming ConventionsRecap - Initialize VariablesType Casting Part 1Type Casting Part 26Decision Making
If StatementIf - ElseSwitch StatementTernary OperatorRecap - If ElseNested If - ElseПотренируйтесь самостоятельно: Онлайн-компилятор Java