Como Verificar se uma Expressão Booleana é Válida em Java

JavaBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como verificar se uma expressão booleana é válida em Java. Começaremos avaliando expressões booleanas simples usando operadores de comparação.

Em seguida, você explorará como lidar com expressões booleanas compostas, combinando expressões simples com operadores lógicos. Finalmente, você aprenderá como identificar e capturar erros que podem ocorrer ao trabalhar com expressões booleanas inválidas em seu código Java.

Avaliar Expressões Booleanas Simples

Nesta etapa, aprenderemos sobre expressões booleanas em Java e como avaliar as simples. Expressões booleanas são fundamentais na programação, pois nos permitem tomar decisões com base em se uma condição é verdadeira ou falsa.

Uma expressão booleana é uma declaração que avalia para true ou false. Em Java, usamos operadores de comparação para criar essas expressões. Aqui estão alguns operadores de comparação comuns:

  • ==: Igual a
  • !=: Diferente de
  • >: Maior que
  • <: Menor que
  • >=: Maior ou igual a
  • <=: Menor ou igual a

Vamos criar um programa Java simples para avaliar algumas expressões booleanas.

  1. Abra o arquivo HelloJava.java no editor WebIDE, caso ainda não esteja aberto.

  2. Substitua todo o conteúdo do arquivo pelo seguinte código:

    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);
        }
    }

    Neste código:

    • Declaramos duas variáveis inteiras, x e y.
    • Criamos várias variáveis booleanas (isEqual, isNotEqual, etc.) e atribuímos o resultado de uma expressão booleana a cada uma.
    • Usamos System.out.println para imprimir os resultados dessas expressões booleanas.
  3. Salve o arquivo (Ctrl+S ou Cmd+S).

  4. Compile o programa executando o seguinte comando no Terminal:

    javac HelloJava.java

    Se não houver erros, um arquivo HelloJava.class será criado.

  5. Execute o programa compilado:

    java HelloJava

    Você deve ver a saída mostrando os resultados de cada expressão booleana.

    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

Você avaliou com sucesso expressões booleanas simples em Java! Entender como comparar valores e obter um resultado true ou false é crucial para controlar o fluxo de seus programas.

Lidar com Expressões Compostas

Nesta etapa, aprenderemos como combinar expressões booleanas simples para criar expressões mais complexas usando operadores lógicos. Estas são chamadas de expressões compostas e nos permitem verificar múltiplas condições de uma só vez.

Java fornece os seguintes operadores lógicos:

  • &&: AND lógico. A expressão é true somente se ambas as condições forem true.
  • ||: OR lógico. A expressão é true se pelo menos uma das condições for true.
  • !: NOT lógico. Este operador inverte o valor booleano de uma expressão. Se uma expressão é true, ! a torna false, e vice-versa.

Vamos modificar nosso programa HelloJava.java para usar esses operadores lógicos.

  1. Abra o arquivo HelloJava.java no editor WebIDE.

  2. Substitua o código atual pelo seguinte:

    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);
        }
    }

    Neste código atualizado:

    • Introduzimos novas variáveis age, score e isStudent.
    • Usamos && para verificar se alguém é elegível para um desconto estudantil (maior de 18 anos E é estudante).
    • Usamos || para verificar se alguém passou no exame (a pontuação é 70 ou superior OU eles têm menos de 18 anos).
    • Usamos ! para negar o booleano isStudent.
    • Mostramos um exemplo de combinação de &&, || e ! em uma única expressão.
  3. Salve o arquivo (Ctrl+S ou Cmd+S).

  4. Compile o programa no Terminal:

    javac HelloJava.java

    Certifique-se de que não haja erros de compilação.

  5. Execute o programa compilado:

    java HelloJava

    Observe a saída, que mostrará os resultados das expressões booleanas compostas.

    Is eligible for student discount? true
    Passed the exam? true
    Is not a student? false
    Complex condition result: true

Você agora aprendeu como criar e avaliar expressões booleanas compostas usando os operadores AND lógico (&&), OR lógico (||) e NOT lógico (!). Isso permite que você construa condições mais sofisticadas em seus programas Java.

Capturar Erros de Expressões Inválidas

Nesta etapa, exploraremos o que acontece quando tentamos avaliar expressões que não são válidas em Java e como o compilador nos ajuda a capturar esses erros. Entender os erros comuns é uma parte importante do aprendizado de qualquer linguagem de programação.

Java é uma linguagem fortemente tipada, o que significa que o tipo de dados importa. Expressões booleanas especificamente requerem operandos que podem ser comparados ou avaliados para um valor booleano. Tentar usar tipos incompatíveis em uma expressão booleana resultará em um erro de compilação.

Vamos intencionalmente introduzir um erro em nosso programa HelloJava.java para ver como o compilador reage.

  1. Abra o arquivo HelloJava.java no editor WebIDE.

  2. Modifique o código para incluir uma comparação inválida. Por exemplo, vamos tentar comparar um booleano com um inteiro:

    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);
        }
    }

    Comentamos a linha que causará o erro por enquanto, mas a descomentaremos na próxima etapa. A linha comentada boolean invalidComparison = (isStudent == age); tenta comparar uma variável boolean (isStudent) com uma variável int (age) usando o operador de igualdade (==). Java não permite essa comparação direta porque boolean e int são tipos de dados diferentes que não podem ser comparados significativamente dessa maneira.

  3. Salve o arquivo (Ctrl+S ou Cmd+S).

  4. Agora, vamos descomentar a linha que causará o erro. Altere o código para:

    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. Salve o arquivo novamente.

  6. Tente compilar o programa no Terminal:

    javac HelloJava.java

    Você deve ver uma mensagem de erro do compilador Java. A mensagem exata pode variar ligeiramente dependendo da versão do Java, mas indicará uma incompatibilidade de tipo ou tipos incompatíveis.

    ~/project/HelloJava.java:7: error: incomparable types: boolean and int
            boolean invalidComparison = (isStudent == age);
                                         ^
    1 error

    Esta mensagem de erro informa o nome do arquivo (HelloJava.java), o número da linha (7) e uma descrição do erro ("tipos incomparáveis: boolean e int"). Este é o compilador ajudando você a detectar erros antes mesmo de tentar executar o programa.

  7. Para corrigir o erro e tornar o programa compilável novamente, você precisa remover ou comentar a linha inválida. Altere o código de volta para a versão em que a linha está comentada:

    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. Salve o arquivo.

  9. Compile o programa novamente:

    javac HelloJava.java

    Desta vez, a compilação deve ser bem-sucedida e você não verá nenhuma mensagem de erro.

Entender os erros de compilação e como lê-los é uma habilidade crucial para qualquer programador. O compilador Java é uma ferramenta poderosa que ajuda você a encontrar muitos erros comuns no início do processo de desenvolvimento.

Resumo

Neste laboratório, aprendemos os fundamentos das expressões booleanas em Java. Começamos entendendo o que é uma expressão booleana e como ela é avaliada como true ou false. Em seguida, praticamos a avaliação de expressões booleanas simples usando operadores de comparação comuns, como ==, !=, >, <, >=, e <=. Através de um exemplo prático, vimos como declarar variáveis inteiras, aplicar esses operadores de comparação para criar expressões booleanas e imprimir os valores booleanos resultantes.

Com base em expressões simples, exploramos como lidar com expressões booleanas compostas, combinando as simples usando operadores lógicos como && (AND), || (OR) e ! (NOT). Aprendemos como esses operadores funcionam e como usar parênteses para controlar a ordem de avaliação em expressões complexas. Finalmente, abordamos a importância de lidar com possíveis erros que podem surgir de expressões booleanas inválidas, entendendo como identificar e resolver problemas que podem impedir que uma expressão seja avaliada corretamente.