[RESOLVIDO] Cálculo de média escolar com método para iniciante

Pessoal, sou estudante de Java, iniciante na verdade, preciso fazer um cálculo de média de aluno com quatro notas e quatro tipos de resultados. Vou mostrar a vocês como escrevi, não finalizei até o final pq deu branco e não consegui terminar.

private void jBMediaActionPerformed(java.awt.event.ActionEvent evt) {                                        
    // TODO add your handling code here:
    //declarando as variáveis que vão receber os valores
    String nome;
    String nota1;
    String nota2;
    String nota3;
    String nota4;
    
    //Atribuindo valores digitados as vaiáveis criadas
    nome = jTNomeAluno.getText();
    nota1 = jTN1.getText();
    nota2 = jTN2.getText();
    nota3 = jTN3.getText();
    nota4 = jTN4.getText();
    
  
    double valor1 = Double.parseDouble(nota1);
    double valor2 = Double.parseDouble(nota2);
    double valor3 = Double.parseDouble(nota3);
    double valor4 = Double.parseDouble(nota4);
    double media = ((valor1 + valor2 + valor3 + valor4)/4);
    
               
    
    if(media <= 5){
        JOptionPane.showMessageDialog(null, "Você foi reprovado, sua nota é: " + media);
    }
    if(media > 5 <= 7){
        JOptionPane.showMessageDialog(null, "Aprovado com média muito baixa, sua média é: " + media);
    }
    if(media > 7 <= 9){
        JOptionPane.showMessageDialog(null, "Aprovado com média muito boa, sua média é: " + media);
    }
    if(media > 9){
        JOptionPane.showMessageDialog(null, "Aprovado com média excelente, sua nota é: "+ media);
    }
    
    
     
    
    
  
    
}

O quê que esta faltando?

finalizar eu acho, o que escrevi está correto?

Algo como isso?

nome = jTNomeAluno.getText();

double valor1 = Double.parseDouble(jTN1.getText());
double valor2 = Double.parseDouble(jTN2.getText());
double valor3 = Double.parseDouble(jTN3.getText());
double valor4 = Double.parseDouble(jTN4.getText());

double media = (valor1 + valor2 + valor3 + valor4)/4;

           

if(media <= 5){
    JOptionPane.showMessageDialog(null, "Você foi reprovado, sua nota é: " + media);
}else   if(media > 5 <= 7){
    JOptionPane.showMessageDialog(null, "Aprovado com média muito baixa, sua média é: " + media);
}else   if(media > 7 <= 9){
    JOptionPane.showMessageDialog(null, "Aprovado com média muito boa, sua média é: " + media);
}else(media > 9){
    JOptionPane.showMessageDialog(null, "Aprovado com média excelente, sua nota é: "+ media);
}

o que tá faltando ???

Caramba, só faltava o else, isso quer dizer que estou no caminho certo. Muito orbigado JFSantos, me ajudou muito mesmo

Faltou algo errado, só esta lendo o primeiro if

jTNomeAluno é um campo texto como o jTN1, já o JOptionPane é uma classe

o sistema está lendo if e logo após aparecer a primeira mensagem do if (reprovado) aparece a mensagem do último else (aprovado excelente). estranho

String nome;
String nota1;
String nota2;
String nota3;
String nota4;

    //Atribuindo valores digitados as vaiáveis criadas
    nome = jTNomeAluno.getText();
    nota1 = jTN1.getText();
    nota2 = jTN2.getText();
    nota3 = jTN3.getText();
    nota4 = jTN4.getText();
    
    
    double valor1 = Double.parseDouble(nota1);
    double valor2 = Double.parseDouble(nota2);
    double valor3 = Double.parseDouble(nota3);
    double valor4 = Double.parseDouble(nota4);
    
    double media = (valor1 + valor2 + valor3 + valor4)/4;
    
        
    
    if(media <= 5){
        JOptionPane.showMessageDialog(null, "você foi reprovado, sua nota é: " + media);
    }else   if(media > 5 <= 7){
        JOptionPane.showMessageDialog(null, "você foi aprovado com média muito baixa, sua média é: " + media);
    }else   if(media > 7 <= 9){
        JOptionPane.showMessageDialog(null, "você foi aprovado com média muito boa, sua média é: " + media);
    }else(media > 9){
        JOptionPane.showMessageDialog(null, "você foi aprovado com média excelente, sua nota é: " + media);
    }

Isso aqui, em Java, não existe. Java compara condições isoladas, ou seja, você não pode fazer duas comparações usando o mesmo termo dentro de um if. Você escreve dois termos de comparação (nesse caso, se é menor que cinco ou se é maior/igual a sete) usando a mesma variável. Isso seria traduzido como:

if(media > 5 && media <=7)

Leia como: Se a média for maior que 5 E a média for menor ou igual a sete, faça:

Eu tenho certeza que você ouviu falar dos operadores lógicos. Esse é o caminho.

1 curtida

Nem em PHP isso existe, pra ser sincero nem sei em quais linguagens isso existe, você sabe?

Não tenho ciência não.

Muito obrigado meu amigo, deu certo, e sim, eu estudei operadores, mas sou iniciante, e tem coisas que não associo bem ainda. Obrigado mais uma vez por me ajudar sem criticar como outros fazem, acho que todos nós somos aprendizes da vida, e ninguém sabe tudo.

Por nada! Sinta-se a vontade para resolver suas dúvidas por aqui :slight_smile:

Grande abraço.