Neste capítulo, vamos aplicar os conhecimentos de operadores relacionais em um desafio prático para verificar se alunos passaram ou não em um teste, com base em suas notas.
Este desafio vai ajudar a praticar:
Crie um arquivo chamado desafio1.java seguindo estas instruções:
notaDoAluno e atribuir valor 5.5notaDaAluna e atribuir valor 7.5notaMinimaParaPassar e atribuir valor 6.0alunoPassou e verificar se notaDoAluno é maior ou igual que notaMinimaParaPassaralunaPassou e verificar se notaDaAluna é maior ou igual que notaMinimaParaPassaralunoPassou e alunaPassou em linhas diferentes contendo o texto: "O aluno passou?" e "A aluna passou?", respectivamenteAqui está o código completo para resolver o desafio:
public class desafio1 {
public static void main(String[] args) {
// Criar variável fracionária (double) chamada notaDoAluno e atribuir valor 5.5
double notaDoAluno = 5.5;
// Criar variável fracionária (double) chamada notaDaAluna e atribuir valor 7.5
double notaDaAluna = 7.5;
// Criar variável fracionária (double) chamada notaMinimaParaPassar e atribuir valor 6.0
double notaMinimaParaPassar = 6.0;
// Criar variável booleana chamada alunoPassou e verificar se notaDoAluno é maior ou igual que notaMinimaParaPassar
boolean alunoPassou = notaDoAluno >= notaMinimaParaPassar;
// Criar variável booleana chamada alunaPassou e verificar se notaDaAluna é maior ou igual que notaMinimaParaPassar
boolean alunaPassou = notaDaAluna >= notaMinimaParaPassar;
// Imprimir as variáveis alunoPassou e alunaPassou em linhas diferentes contendo o texto
System.out.println("O aluno passou? " + alunoPassou);
System.out.println("A aluna passou? " + alunaPassou);
}
}
O aluno passou? false
A aluna passou? true
Vamos analisar cada parte do código:
double notaDoAluno = 5.5; double notaDaAluna = 7.5; double notaMinimaParaPassar = 6.0;
Aqui, criamos três variáveis do tipo double para armazenar as notas e a nota mínima necessária para aprovação.
boolean alunoPassou = notaDoAluno >= notaMinimaParaPassar; boolean alunaPassou = notaDaAluna >= notaMinimaParaPassar;
Usamos o operador relacional >= (maior ou igual que) para verificar se as notas são suficientes para aprovação. O resultado dessa comparação (true ou false) é armazenado nas variáveis booleanas.
System.out.println("O aluno passou? " + alunoPassou);
System.out.println("A aluna passou? " + alunaPassou);
Imprimimos as perguntas junto com os resultados booleanos. Como notaDoAluno (5.5) é menor que notaMinimaParaPassar (6.0), alunoPassou é false. Como notaDaAluna (7.5) é maior que notaMinimaParaPassar (6.0), alunaPassou é true.
Podemos expandir este desafio de várias maneiras:
public class desafio1Expandido {
public static void main(String[] args) {
// Notas originais
double notaDoAluno = 5.5;
double notaDaAluna = 7.5;
double notaMinimaParaPassar = 6.0;
// Verificação de aprovação
boolean alunoPassou = notaDoAluno >= notaMinimaParaPassar;
boolean alunaPassou = notaDaAluna >= notaMinimaParaPassar;
// Resultados originais
System.out.println("--- Resultados Originais ---");
System.out.println("Nota do aluno: " + notaDoAluno);
System.out.println("Nota da aluna: " + notaDaAluna);
System.out.println("Nota mínima para aprovação: " + notaMinimaParaPassar);
System.out.println("O aluno passou? " + alunoPassou);
System.out.println("A aluna passou? " + alunaPassou);
// Verificando quem tirou a nota mais alta
boolean alunoMelhorNota = notaDoAluno > notaDaAluna;
boolean alunaMelhorNota = notaDaAluna > notaDoAluno;
boolean notasIguais = notaDoAluno == notaDaAluna;
System.out.println("\n--- Comparação de Notas ---");
System.out.println("O aluno tirou nota maior que a aluna? " + alunoMelhorNota);
System.out.println("A aluna tirou nota maior que o aluno? " + alunaMelhorNota);
System.out.println("As notas são iguais? " + notasIguais);
// Simulando uma prova de recuperação para o aluno
System.out.println("\n--- Simulação de Recuperação ---");
System.out.println("Nota original do aluno: " + notaDoAluno);
// O aluno faz a recuperação e aumenta sua nota
notaDoAluno = 6.5;
alunoPassou = notaDoAluno >= notaMinimaParaPassar;
System.out.println("Nova nota do aluno após recuperação: " + notaDoAluno);
System.out.println("O aluno passou após a recuperação? " + alunoPassou);
}
}
--- Resultados Originais ---
Nota do aluno: 5.5
Nota da aluna: 7.5
Nota mínima para aprovação: 6.0
O aluno passou? false
A aluna passou? true
--- Comparação de Notas ---
O aluno tirou nota maior que a aluna? false
A aluna tirou nota maior que o aluno? true
As notas são iguais? false
--- Simulação de Recuperação ---
Nota original do aluno: 5.5
Nova nota do aluno após recuperação: 6.5
O aluno passou após a recuperação? true
Podemos também usar o operador ternário para mostrar uma mensagem mais amigável:
public class desafio1ComTernario {
public static void main(String[] args) {
double notaDoAluno = 5.5;
double notaDaAluna = 7.5;
double notaMinimaParaPassar = 6.0;
boolean alunoPassou = notaDoAluno >= notaMinimaParaPassar;
boolean alunaPassou = notaDaAluna >= notaMinimaParaPassar;
// Imprimindo resultados com texto mais amigável usando operador ternário
System.out.println("Nota do aluno: " + notaDoAluno);
System.out.println("Situação do aluno: " + (alunoPassou ? "Aprovado" : "Reprovado"));
System.out.println("\nNota da aluna: " + notaDaAluna);
System.out.println("Situação da aluna: " + (alunaPassou ? "Aprovada" : "Reprovada"));
// Verificando se ambos os alunos passaram (usando operador lógico AND)
boolean todosMundoPassou = alunoPassou && alunaPassou;
System.out.println("\nTodos os alunos passaram? " + todosMundoPassou);
// Verificando se pelo menos um aluno passou (usando operador lógico OR)
boolean peloMenosUmPassou = alunoPassou || alunaPassou;
System.out.println("Pelo menos um aluno passou? " + peloMenosUmPassou);
}
}
Nota do aluno: 5.5
Situação do aluno: Reprovado
Nota da aluna: 7.5
Situação da aluna: Aprovada
Todos os alunos passaram? false
Pelo menos um aluno passou? true
Dica: O operador ternário tem a forma condição ? valorSeVerdadeiro : valorSeFalso e é uma forma compacta de escrever um if-else para atribuição de valores.
Teste seus conhecimentos sobre o desafio e operadores relacionais:
Reforce o conteúdo desta aula com mais dois exercícios práticos: