Введение
В этом практическом занятии (лабораторной работе) вы научитесь проверять, является ли булево выражение корректным на Java. Мы начнем с оценки простых булевых выражений с использованием операторов сравнения.
Затем вы узнаете, как обрабатывать составные булевы выражения, комбинируя простые выражения с логическими операторами. Наконец, вы научитесь выявлять и исправлять ошибки, которые могут возникнуть при работе с некорректными булевыми выражениями в вашем Java - коде.
Оценка простого булевого выражения
На этом этапе мы узнаем о булевых выражениях в Java и о том, как оценивать простые из них. Булевы выражения являются фундаментальными в программировании, так как позволяют принимать решения на основе того, истинно ли или ложно условие.
Булево выражение - это утверждение, которое оценивается как true (истина) или false (ложь). В Java для создания таких выражений используются операторы сравнения. Вот некоторые общие операторы сравнения:
==: равно!=: не равно>: больше<: меньше>=: больше или равно<=: меньше или равно
Создадим простую Java - программу для оценки некоторых булевых выражений.
Откройте файл
HelloJava.javaв редакторе WebIDE, если он еще не открыт.Замените все содержимое файла следующим кодом:
public class HelloJava { public static void main(String[] args) { int x = 10; int y = 20; boolean isEqual = (x == y); boolean isNotEqual = (x != y); boolean isGreater = (x > y); boolean isLess = (x < y); boolean isGreaterOrEqual = (x >= y); boolean isLessOrEqual = (x <= y); System.out.println("Is x equal to y? " + isEqual); System.out.println("Is x not equal to y? " + isNotEqual); System.out.println("Is x greater than y? " + isGreater); System.out.println("Is x less than y? " + isLess); System.out.println("Is x greater than or equal to y? " + isGreaterOrEqual); System.out.println("Is x less than or equal to y? " + isLessOrEqual); } }В этом коде:
- Мы объявляем две целочисленные переменные,
xиy. - Мы создаем несколько булевых переменных (
isEqual,isNotEqualи т.д.) и присваиваем каждой результат булева выражения. - Мы используем
System.out.printlnдля вывода результатов этих булевых выражений.
- Мы объявляем две целочисленные переменные,
Сохраните файл (Ctrl+S или Cmd+S).
Скомпилируйте программу, выполнив следующую команду в терминале:
javac HelloJava.javaЕсли нет ошибок, будет создан файл
HelloJava.class.Запустите скомпилированную программу:
java HelloJavaВы должны увидеть вывод, показывающий результаты каждого булева выражения.
Is x equal to y? false Is x not equal to y? true Is x greater than y? false Is x less than y? true Is x greater than or equal to y? false Is x less than or equal to y? true
Вы успешно оценили простые булевы выражения на Java! Понимание того, как сравнивать значения и получать результат true или false, является важным для управления потоком выполнения ваших программ.
Обработка составных выражений
На этом этапе мы узнаем, как комбинировать простые булевы выражения для создания более сложных с использованием логических операторов. Такие выражения называются составными, и они позволяют проверять несколько условий одновременно.
Java предоставляет следующие логические операторы:
&&: Логическое И. Выражение истинно (true), только если оба условия истинны.||: Логическое ИЛИ. Выражение истинно, если хотя бы одно из условий истинно.!: Логическое НЕ. Этот оператор инвертирует булево значение выражения. Если выражение истинно, то!делает его ложным (false), и наоборот.
Модифицируем нашу программу HelloJava.java для использования этих логических операторов.
Откройте файл
HelloJava.javaв редакторе WebIDE.Замените текущий код следующим:
public class HelloJava { public static void main(String[] args) { int age = 25; int score = 85; boolean isStudent = true; // Using Logical AND (&&) boolean isEligibleForDiscount = (age > 18 && isStudent); System.out.println("Is eligible for student discount? " + isEligibleForDiscount); // Using Logical OR (||) boolean passedExam = (score >= 70 || age < 18); System.out.println("Passed the exam? " + passedExam); // Using Logical NOT (!) boolean isNotStudent = !isStudent; System.out.println("Is not a student? " + isNotStudent); // Combining multiple operators boolean complexCondition = (age > 20 && score > 80 || !isStudent); System.out.println("Complex condition result: " + complexCondition); } }В этом обновленном коде:
- Мы вводим новые переменные
age,scoreиisStudent. - Мы используем
&&для проверки, может ли кто - то получить студенческую скидку (старше 18 лет И является студентом). - Мы используем
||для проверки, сдал ли кто - то экзамен (оценка 70 или выше ИЛИ ему меньше 18 лет). - Мы используем
!для инвертирования булевой переменнойisStudent. - Мы показываем пример комбинирования
&&,||и!в одном выражении.
- Мы вводим новые переменные
Сохраните файл (Ctrl+S или Cmd+S).
Скомпилируйте программу в терминале:
javac HelloJava.javaУбедитесь, что нет ошибок компиляции.
Запустите скомпилированную программу:
java HelloJavaПосмотрите на вывод, который покажет результаты составных булевых выражений.
Is eligible for student discount? true Passed the exam? true Is not a student? false Complex condition result: true
Теперь вы узнали, как создавать и оценивать составные булевы выражения с использованием логических операторов И (&&), ИЛИ (||) и НЕ (!). Это позволяет создавать более сложные условия в ваших Java - программах.
Перехват ошибок при работе с некорректными выражениями
На этом этапе мы рассмотрим, что происходит, когда мы пытаемся оценить выражения, которые не являются допустимыми в Java, и как компилятор помогает нам обнаруживать эти ошибки. Понимание распространенных ошибок является важной частью изучения любого языка программирования.
Java - это строго типизированный язык, что означает, что тип данных имеет значение. Булевы выражения, в частности, требуют операндов, которые могут быть сравнены или оценены как булевое значение. Попытка использовать нессовместимые типы в булевом выражении приведет к ошибке компиляции.
Создадим ошибку в нашей программе HelloJava.java намеренно, чтобы увидеть, как на это среагирует компилятор.
Откройте файл
HelloJava.javaв редакторе WebIDE.Измените код, добавив недопустимое сравнение. Например, попробуем сравнить булевое значение с целым числом:
public class HelloJava { public static void main(String[] args) { int age = 25; boolean isStudent = true; // This line will cause a compilation error // boolean invalidComparison = (isStudent == age); System.out.println("Age: " + age); System.out.println("Is student: " + isStudent); } }Временно закомментировали строку, которая вызовет ошибку, но в следующем шаге раскомментируем ее. Закомментированная строка
boolean invalidComparison = (isStudent == age);пытается сравнить переменную типаboolean(isStudent) с переменной типаint(age) с использованием оператора равенства (==). Java не позволяет такое прямое сравнение, так какbooleanиint- это разные типы данных, которые нельзя сравнивать таким образом.Сохраните файл (Ctrl+S или Cmd+S).
Теперь раскомментируем строку, которая вызовет ошибку. Измените код на следующий:
public class HelloJava { public static void main(String[] args) { int age = 25; boolean isStudent = true; // This line will cause a compilation error boolean invalidComparison = (isStudent == age); System.out.println("Age: " + age); System.out.println("Is student: " + isStudent); System.out.println("Invalid comparison result: " + invalidComparison); } }Сохраните файл еще раз.
Попробуйте скомпилировать программу в терминале:
javac HelloJava.javaВы должны увидеть сообщение об ошибке от компилятора Java. Точное сообщение может немного отличаться в зависимости от версии Java, но оно будет указывать на несоответствие типов или нессовместимые типы.
~/project/HelloJava.java:7: error: incomparable types: boolean and int boolean invalidComparison = (isStudent == age); ^ 1 errorЭто сообщение об ошибке сообщает вам имя файла (
HelloJava.java), номер строки (7) и описание ошибки ("incomparable types: boolean and int"). Это компилятор помогает вам обнаружить ошибки еще до того, как вы попытаетесь запустить программу.Чтобы исправить ошибку и сделать программу снова компилируемой, вам нужно удалить или закомментировать недопустимую строку. Верните код к версии, где строка закомментирована:
public class HelloJava { public static void main(String[] args) { int age = 25; boolean isStudent = true; // This line will cause a compilation error // boolean invalidComparison = (isStudent == age); System.out.println("Age: " + age); System.out.println("Is student: " + isStudent); } }Сохраните файл.
Скомпилируйте программу еще раз:
javac HelloJava.javaНа этот раз компиляция должна пройти успешно, и вы не увидите никаких сообщений об ошибках.
Понимание ошибок компиляции и способов их чтения - это важный навык для любого программиста. Компилятор Java - это мощный инструмент, который помогает вам обнаруживать многие распространенные ошибки на ранней стадии разработки.
Резюме
В этом практическом занятии (лабораторной работе) мы изучили основы булевых выражений в Java. Сначала мы поняли, что такое булево выражение и как оно оценивается как true (истина) или false (ложь). Затем мы практиковались в оценке простых булевых выражений с использованием общих операторов сравнения, таких как ==, !=, >, <, >= и <=. На практическом примере мы увидели, как объявлять целочисленные переменные, применять эти операторы сравнения для создания булевых выражений и выводить полученные булевы значения.
На основе простых выражений мы изучили, как обрабатывать составные булевы выражения, комбинируя простые с использованием логических операторов, таких как && (логическое И), || (логическое ИЛИ) и ! (логическое НЕ). Мы узнали, как работают эти операторы и как использовать скобки для управления порядком вычислений в сложных выражениях. Наконец, мы рассмотрели важность обработки потенциальных ошибок, которые могут возникнуть из-за недопустимых булевых выражений, и научились определять и решать проблемы, которые могут помешать правильной оценке выражения.



