Как проверить, является ли булево выражение допустимым в Java

JavaJavaBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии (лабораторной работе) вы научитесь проверять, является ли булево выражение корректным на Java. Мы начнем с оценки простых булевых выражений с использованием операторов сравнения.

Затем вы узнаете, как обрабатывать составные булевы выражения, комбинируя простые выражения с логическими операторами. Наконец, вы научитесь выявлять и исправлять ошибки, которые могут возникнуть при работе с некорректными булевыми выражениями в вашем Java - коде.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/BasicSyntaxGroup(["Basic Syntax"]) java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java/BasicSyntaxGroup -.-> java/data_types("Data Types") java/BasicSyntaxGroup -.-> java/operators("Operators") java/BasicSyntaxGroup -.-> java/booleans("Booleans") java/BasicSyntaxGroup -.-> java/if_else("If...Else") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/exceptions("Exceptions") subgraph Lab Skills java/data_types -.-> lab-559930{{"Как проверить, является ли булево выражение допустимым в Java"}} java/operators -.-> lab-559930{{"Как проверить, является ли булево выражение допустимым в Java"}} java/booleans -.-> lab-559930{{"Как проверить, является ли булево выражение допустимым в Java"}} java/if_else -.-> lab-559930{{"Как проверить, является ли булево выражение допустимым в Java"}} java/exceptions -.-> lab-559930{{"Как проверить, является ли булево выражение допустимым в Java"}} end

Оценка простых булевых выражений

На этом этапе мы узнаем о булевых выражениях в Java и о том, как оценивать простые из них. Булевы выражения являются фундаментальными в программировании, так как позволяют принимать решения на основе того, истинно ли или ложно условие.

Булево выражение - это утверждение, которое оценивается как true (истина) или false (ложь). В Java для создания таких выражений используются операторы сравнения. Вот некоторые общие операторы сравнения:

  • ==: равно
  • !=: не равно
  • >: больше
  • <: меньше
  • >=: больше или равно
  • <=: меньше или равно

Создадим простую Java - программу для оценки некоторых булевых выражений.

  1. Откройте файл HelloJava.java в редакторе WebIDE, если он еще не открыт.

  2. Замените все содержимое файла следующим кодом:

    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 для вывода результатов этих булевых выражений.
  3. Сохраните файл (Ctrl+S или Cmd+S).

  4. Скомпилируйте программу, выполнив следующую команду в терминале:

    javac HelloJava.java

    Если нет ошибок, будет создан файл HelloJava.class.

  5. Запустите скомпилированную программу:

    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 для использования этих логических операторов.

  1. Откройте файл HelloJava.java в редакторе WebIDE.

  2. Замените текущий код следующим:

    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.
    • Мы показываем пример комбинирования &&, || и ! в одном выражении.
  3. Сохраните файл (Ctrl+S или Cmd+S).

  4. Скомпилируйте программу в терминале:

    javac HelloJava.java

    Убедитесь, что нет ошибок компиляции.

  5. Запустите скомпилированную программу:

    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 намеренно, чтобы увидеть, как на это среагирует компилятор.

  1. Откройте файл HelloJava.java в редакторе WebIDE.

  2. Измените код, добавив недопустимое сравнение. Например, попробуем сравнить булевое значение с целым числом:

    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 - это разные типы данных, которые нельзя сравнивать таким образом.

  3. Сохраните файл (Ctrl+S или Cmd+S).

  4. Теперь раскомментируем строку, которая вызовет ошибку. Измените код на следующий:

    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);
        }
    }
  5. Сохраните файл еще раз.

  6. Попробуйте скомпилировать программу в терминале:

    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"). Это компилятор помогает вам обнаружить ошибки еще до того, как вы попытаетесь запустить программу.

  7. Чтобы исправить ошибку и сделать программу снова компилируемой, вам нужно удалить или закомментировать недопустимую строку. Верните код к версии, где строка закомментирована:

    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);
        }
    }
  8. Сохраните файл.

  9. Скомпилируйте программу еще раз:

    javac HelloJava.java

    На этот раз компиляция должна пройти успешно, и вы не увидите никаких сообщений об ошибках.

Понимание ошибок компиляции и способов их чтения - это важный навык для любого программиста. Компилятор Java - это мощный инструмент, который помогает вам обнаруживать многие распространенные ошибки на ранней стадии разработки.

Резюме

В этом практическом занятии (лабораторной работе) мы изучили основы булевых выражений в Java. Сначала мы поняли, что такое булево выражение и как оно оценивается как true (истина) или false (ложь). Затем мы практиковались в оценке простых булевых выражений с использованием общих операторов сравнения, таких как ==, !=, >, <, >= и <=. На практическом примере мы увидели, как объявлять целочисленные переменные, применять эти операторы сравнения для создания булевых выражений и выводить полученные булевы значения.

На основе простых выражений мы изучили, как обрабатывать составные булевы выражения, комбинируя простые с использованием логических операторов, таких как && (логическое И), || (логическое ИЛИ) и ! (логическое НЕ). Мы узнали, как работают эти операторы и как использовать скобки для управления порядком вычислений в сложных выражениях. Наконец, мы рассмотрели важность обработки потенциальных ошибок, которые могут возникнуть из-за недопустимых булевых выражений, и научились определять и решать проблемы, которые могут помешать правильной оценке выражения.