AFF Education Construa seu Futuro

Aula 27 - Mais Exemplos sobre Operadores Relacionais

Mais exemplos sobre operadores relacionais

Operadores relacionais comparam duas variáveis ou dois valores. Toda vez que fazemos comparações, elas podem ser verdadeiras ou falsas.

Nesta aula, vamos explorar mais exemplos práticos do uso de operadores relacionais em diferentes contextos.

Utilizando operadores relacionais em estruturas condicionais

public class OperadoresRelacionaisCondicionais {
    public static void main(String[] args) {
        int idade = 17;
        
        // Verificando se a pessoa é maior de idade
        if (idade >= 18) {
            System.out.println("Você é maior de idade!");
        } else {
            System.out.println("Você é menor de idade!");
        }
        
        // Verificando faixas etárias
        if (idade < 12) {
            System.out.println("Você é uma criança.");
        } else if (idade < 18) {
            System.out.println("Você é um adolescente.");
        } else if (idade < 60) {
            System.out.println("Você é um adulto.");
        } else {
            System.out.println("Você é um idoso.");
        }
        
        // Verificando se a idade é exatamente 18
        if (idade == 18) {
            System.out.println("Você acabou de atingir a maioridade!");
        }
        
        // Verificando se a idade não é 18
        if (idade != 18) {
            System.out.println("Sua idade não é 18 anos.");
        }
    }
}

Você é menor de idade!

Você é um adolescente.

Sua idade não é 18 anos.

Operadores relacionais com diferentes tipos de dados

public class DiferentesTiposDados {
    public static void main(String[] args) {
        // Comparando números inteiros
        int a = 10;
        int b = 20;
        System.out.println("a < b: " + (a < b));
        
        // Comparando números de ponto flutuante
        double c = 10.5;
        double d = 10.5;
        System.out.println("c == d: " + (c == d));
        
        // Comparando char (são comparados pelo valor numérico na tabela ASCII)
        char letra1 = 'A';  // Valor ASCII: 65
        char letra2 = 'B';  // Valor ASCII: 66
        System.out.println("letra1 < letra2: " + (letra1 < letra2));
        System.out.println("Valor numérico de 'A': " + (int)letra1);
        System.out.println("Valor numérico de 'B': " + (int)letra2);
        
        // Comparando valores booleanos (com igualdade)
        boolean verdadeiro = true;
        boolean falso = false;
        System.out.println("verdadeiro == falso: " + (verdadeiro == falso));
        System.out.println("verdadeiro != falso: " + (verdadeiro != falso));
        
        // Comparando tipos diferentes (implicitamente convertidos)
        int num1 = 10;
        double num2 = 10.0;
        System.out.println("num1 == num2: " + (num1 == num2));  // true, pois há conversão implícita
        
        // Comparando expressões
        System.out.println("(5 + 5) == 10: " + ((5 + 5) == 10));
        System.out.println("(5 * 2) != (20 / 2): " + ((5 * 2) != (20 / 2)));
    }
}

a < b: true

c == d: true

letra1 < letra2: true

Valor numérico de 'A': 65

Valor numérico de 'B': 66

verdadeiro == falso: false

verdadeiro != falso: true

num1 == num2: true

(5 + 5) == 10: true

(5 * 2) != (20 / 2): false

Operadores relacionais com Strings

public class OperadoresRelacionaisStrings {
    public static void main(String[] args) {
        // Declarando strings
        String texto1 = "Java";
        String texto2 = "Java";
        String texto3 = new String("Java");
        String texto4 = "JAVA";
        
        // Comparando referências (cuidado!)
        System.out.println("texto1 == texto2: " + (texto1 == texto2));  // Provavelmente true devido ao pool de strings
        System.out.println("texto1 == texto3: " + (texto1 == texto3));  // Provavelmente false, referências diferentes
        
        // Método correto para comparar conteúdo de strings - equals()
        System.out.println("\nComparando conteúdo com equals():");
        System.out.println("texto1.equals(texto2): " + texto1.equals(texto2));  // true
        System.out.println("texto1.equals(texto3): " + texto1.equals(texto3));  // true
        System.out.println("texto1.equals(texto4): " + texto1.equals(texto4));  // false (case sensitive)
        
        // Ignorando maiúsculas/minúsculas
        System.out.println("texto1.equalsIgnoreCase(texto4): " + texto1.equalsIgnoreCase(texto4));  // true
        
        // Comparando ordem alfabética com compareTo()
        String a = "abc";
        String b = "def";
        
        // compareTo() retorna: negativo se a < b, 0 se a == b, positivo se a > b
        int resultado = a.compareTo(b);
        System.out.println("\nComparando ordem alfabética:");
        System.out.println("a.compareTo(b): " + resultado);
        
        if (resultado < 0) {
            System.out.println("a vem antes de b no dicionário");
        } else if (resultado > 0) {
            System.out.println("a vem depois de b no dicionário");
        } else {
            System.out.println("a e b são iguais");
        }
        
        // Verificando se uma string contém outra
        String frase = "Java é uma linguagem de programação muito popular";
        boolean contemJava = frase.contains("Java");
        boolean contemPython = frase.contains("Python");
        
        System.out.println("\nA frase contém 'Java'? " + contemJava);
        System.out.println("A frase contém 'Python'? " + contemPython);
    }
}

texto1 == texto2: true

texto1 == texto3: false

Comparando conteúdo com equals():

texto1.equals(texto2): true

texto1.equals(texto3): true

texto1.equals(texto4): false

texto1.equalsIgnoreCase(texto4): true

Comparando ordem alfabética:

a.compareTo(b): -3

a vem antes de b no dicionário

A frase contém 'Java'? true

A frase contém 'Python'? false

Importante: Ao comparar Strings, sempre use o método equals() para comparar o conteúdo, em vez do operador == que compara referências de objetos.

Exercícios

Teste seus conhecimentos sobre operadores relacionais em Java:

1. Qual é o resultado da seguinte expressão? (3 * 4) >= (10 + 2)

2. Qual é o método correto para comparar o conteúdo de duas Strings em Java?

3. Ao comparar os caracteres 'A' e 'a' em Java, qual será o resultado de 'A' < 'a'?

4. Por que devemos ter cuidado ao comparar números de ponto flutuante com o operador ==?

5. Complete o código para verificar se uma String começa com a letra 'J':

String texto = "Java";
boolean comecaComJ = ___________________;

Exercícios de Aplicação AFF Education

Reforce o conteúdo desta aula com mais dois exercícios práticos:

1. Sendo int idade = 18;, qual o valor de idade >= 18?

2. A expressão 10 < 5 resulta em: