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.
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.
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
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.
Teste seus conhecimentos sobre operadores relacionais em Java:
Reforce o conteúdo desta aula com mais dois exercícios práticos: