Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

2
respostas

Verificando aprovação em uma disciplina

package br.com.praticando.java.condicionais.ifelse;

import java.util.Scanner;

public class AprovacaoDisciplina {
    public static void main(String[] args) {
        Scanner leia = new Scanner(System.in);

        System.out.println("**********  Boletim Escolar Mercurio **********");
        System.out.println("*******  Seja Bemvindo ao site da escola *******");
        System.out.println("Por favor informe seu nome e sobrenome: ");
        String nomeCompleto = leia.nextLine();
        System.out.println("****** Por favor informe a nota do primeiro semestre: ******");
        double nota1 = leia.nextDouble();
        System.out.println("****** Por favor informe a nota do segundo semestre: ******");
        double nota2 = leia.nextDouble();
        System.out.println("****** Por favor informe a nota do terceiro semestre: ******");
        double nota3 = leia.nextDouble();

        double media = (nota1 + nota2 + nota3) / 3;

        if(media >= 7.0){
            System.out.printf("Parabens, %s! Você foi aprovado com: %.2f\n", nomeCompleto, media);
        } else if (media >= 5.0) {
            System.out.printf("%s, está de recuperação com: %.2f.\n", nomeCompleto, media);
        }else {
            System.out.printf("%s, está reprovado com: %.2f.\n", nomeCompleto, media);
        }

    leia.close();
    }
}
2 respostas

Oi, Sara. Tudo bem com você?

Sua solução está muito boa e funciona perfeitamente para o que foi solicitado. Você implementou corretamente a lógica condicional com if e else, capturando as três notas do aluno, calculando a média e exibindo a situação conforme as regras da escola. O código está limpo, bem organizado e você ainda adicionou elementos extras como a captura do nome do aluno e mensagens personalizadas, o que torna a aplicação muito mais amigável e prática de usar.

Você usou adequadamente os operadores de comparação e a estrutura do if-else if-else cobre todos os cenários esperados. A formatação com printf usando %.2f para exibir a média com duas casas decimais é uma escolha bem profissional, pois mantém a saída consistente e clara. Além disso, você fechou corretamente o Scanner no final do programa, o que é uma boa prática para evitar vazamento de recursos. A interface com mensagens bem estruturadas também melhora muito a experiência do usuário ao interagir com o programa.

Uma pequena sugestão que poderia enriquecer ainda mais seu código seria adicionar validação de entrada. Por exemplo, você poderia verificar se as notas estão dentro de um intervalo válido, como entre 0 e 10. Se um usuário inserir uma nota negativa ou maior que 10, o programa deveria alertá-lo e pedir para inserir novamente. Isso evitaria situações onde cálculos incorretos pudessem gerar médias impossíveis.

Pensando em expandir essa aplicação, como você estruturaria o programa se precisasse avaliar múltiplos alunos em sequência sem precisar reiniciar a aplicação a cada um? Você usaria um loop para repetir o processo ou teria outra abordagem em mente?

Obrigado por compartilhar sua solução conosco, Sara. Você está indo muito bem com as condicionais em Java. Continue trazendo seus desafios resolvidos para o fórum, pois suas implementações ajudam toda a comunidade de aprendizado.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

Nesse caso poderia utilizar um WHILE

while (nota1 < 0 || nota1 > 10) {
    System.out.println("Nota inválida! Digite uma nota entre 0 e 10:");
    nota1 = leia.nextDouble();
}