1
resposta

[Projeto] E então? Passou ou não?

import java.util.Locale; import java.util.Scanner;

public class PassouOuNao { public static void main(String[] args) { Scanner passouOuNao = new Scanner(System.in); passouOuNao.useLocale(Locale.US);

    System.out.println("Digite o nome do aluno");
    String nomeAluno = passouOuNao.nextLine();

    System.out.println("Digite 3 notas para calcularmos a media e ao final sabermos se o aluno foi aprovado!");
    double nota1 = passouOuNao.nextDouble();
    double nota2 = passouOuNao.nextDouble();
    double nota3 = passouOuNao.nextDouble();


    double media = (nota1 + nota2 + nota3) / 3;
    System.out.println("A média do aluno é de : " + media);

    if (media >= 7.0){
        System.out.println("O estudante " +nomeAluno+ " teve média de " + media + " e foi aprovado");

    } else if (media >= 5.0 && media <= 6.9) {
        System.out.println("O estudante " +nomeAluno+ " teve média de " + media + " e está de recuperação");
    }else {
        System.out.println("O estudante " +nomeAluno+ " teve uma média de " +media+ " e foi reprovado");
    }


}

}

Confesso que mesmo usando o use.Locale, não consegui resolver meu problema. O usuario ao digitar as notas do aluno tem que ser com pontos, ou virgulas. Ex: nota 1 = 3.6 ou nota 1 = 3,6. Não sei se fiz bem ou mal pois o usuario não vai entender o porque deu erro. Mas o codigo funciona :D. Bjos

1 resposta

Oi Tallita! Tudo bem?

Compreendo sua preocupação em tornar o programa mais amigável para o usuário. O problema que você está enfrentando com a entrada de números decimais é bastante comum, pois em algumas regiões, como no Brasil, usamos a vírgula como separador decimal, enquanto em outras, como nos EUA, usa-se o ponto.

Para permitir que o usuário insira números com vírgula, você pode fazer uma pequena adaptação no seu código. Uma solução seria ler as notas como String e depois substituir a vírgula por ponto antes de convertê-las para double. Aqui está um exemplo de como você pode fazer isso:

import java.util.Locale;
import java.util.Scanner;

public class PassouOuNao {
    public static void main(String[] args) {
        Scanner passouOuNao = new Scanner(System.in);
        passouOuNao.useLocale(Locale.US);

        System.out.println("Digite o nome do aluno");
        String nomeAluno = passouOuNao.nextLine();

        System.out.println("Digite 3 notas para calcularmos a média e ao final sabermos se o aluno foi aprovado!");
        
        // Lendo as notas como String
        String nota1Str = passouOuNao.next();
        String nota2Str = passouOuNao.next();
        String nota3Str = passouOuNao.next();

        // Substituindo vírgula por ponto e convertendo para double
        double nota1 = Double.parseDouble(nota1Str.replace(',', '.'));
        double nota2 = Double.parseDouble(nota2Str.replace(',', '.'));
        double nota3 = Double.parseDouble(nota3Str.replace(',', '.'));

        double media = (nota1 + nota2 + nota3) / 3;
        System.out.println("A média do aluno é de: " + media);

        if (media >= 7.0) {
            System.out.println("O estudante " + nomeAluno + " teve média de " + media + " e foi aprovado");
        } else if (media >= 5.0 && media <= 6.9) {
            System.out.println("O estudante " + nomeAluno + " teve média de " + media + " e está de recuperação");
        } else {
            System.out.println("O estudante " + nomeAluno + " teve uma média de " + media + " e foi reprovado");
        }
    }
}

Com essa modificação, o usuário poderá inserir as notas usando tanto ponto quanto vírgula como separador decimal. Espero que isso ajude a tornar seu programa mais acessível!

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.