2
respostas

codigo que fiz sobre media de alunos

boa noite

criei uma codigo com os aprendizados da primeiras aulas de java , so que percebo quanto o programa faz a soma para retornar a media esta estranho nao dar valor que pensaria ir dar exempo media = nota1 + nota2 /2

public class CadastraAlunos {

public static void main(String[] args) {

    float nota1 = 30;
    float nota2 = 12;
    float media = nota1 + nota2 /2;


        System.out.println("A sua Nota é : " + nota1);
        System.out.println("A sua segunda Nota é : " + nota2);
        System.out.println("sua media é : " + media);

        if (media >= 60.0) {

            System.out.println("Parabens voce foi Aprovado");


        } else {
            System.out.println("Infelismente voce foi Reprovado");
        }

}

} } //aqui a media deu 65.0 porem a conta ta estranha A sua Nota é : 30.0 A sua segunda Nota é : 70.0 sua media é : 65.0 Parabens voce foi Aprovado

//aqui a media deu 36. 0 nao entendi a conta que programa fez ??

A sua Nota é : 30.0 A sua segunda Nota é : 12.0 sua media é : 36.0 Infelismente voce foi Reprovado

porque ele me retorna a media desta forma ??

tem algo errado no codigo

obrigado [ aguardo retorno

2 respostas

O conceito de "ordem de precedência" diz respeito a ordem em que as ações vão ser realizadas no seu código. Você declarou a média da seguinte forma:

float media = nota1 + nota2 / 2;

Seguindo a ordem de precedência, a primeira ação a ser realizada nessa declaração é a DIVISÃO POR 2, e não a SOMA de NOTA1 + NOTA2.

Ou seja, utilizando media = 30 + 12 / 2, ao invés de primeiro somar 30 + 12 e só depois dividir por 2, o seu código está primeiro dividindo 12 por 2 (6) e só depois somando 30 + 6, retornando no final a média 36.

Pra resolver isso é só utilizar parênteses. Eles são o primeiro item na ordem de precedência, ou seja, tudo que estiver dentro de parênteses SEMPRE será feito antes de SOMAS, SUBTRAÇÕES, DIVISÕES e afins. No caso, sua declaração fica:

float media = (nota1 + nota2) / 2;

muito obrigado testei codigo agora sim funcionou legal vai servir ate para outro que tinha feito aqui .. muito bom ... sempre aprendendo.