Como corrigir este erro 3

3 respostas
E

Ajuda por favor!!!

entra com o nome e tres notas e responde a média e a situação: Aprovado, Reprovado ou Prova final.

Aluno

public class Aluno {

private String Nome;

private double Av1, Av2, Av3;
public String getNome() {
    return Nome;
}

public void setNome(String Nome) {
    this.Nome = Nome;
}

public double getAv1() {
    return Av1;
}

public void setAv1(double Av1) {
    this.Av1 = Av1;
}

public double getAv2() {
    return Av2;
}

public void setAv2(double Av2) {
    this.Av2 = Av2;
}

public double getAv3() {
    return Av3;
}

public void setAv3(double Av3) {
    this.Av3 = Av3;
}

public double Media(){
    return (Av1*Av2*Av3)/3;

}

public String Situacao(){   //ERRO nesta linha
   if(Media()>7)
      return "Aprovado";
   else
       if(Media()<=3)
           return "Reprovado";
       else
           if((Media()>3)&&(Media()<=7))
               return "prova final";

}

}

_Main

import java.util.Scanner;

public class Principal extends Aluno {
public static void main(String[] args) {

Aluno aluno = new Aluno();

    Scanner teclado = new Scanner(System.in);

    System.out.println("Nome: ");
    aluno.setNome(teclado.next());

    System.out.println("Av1: ");
    aluno.setAv1(teclado.nextDouble());

    System.out.println("Av2: ");
    aluno.setAv2(teclado.nextDouble());

    System.out.println("Av3: ");
    aluno.setAv3(teclado.nextDouble());

    System.out.println("O Aluno está: "+ aluno.getSituacao());  //ERRO nesta linha


}

}

3 Respostas

P

O método chama-se Situacao() e não getSituacao().

P

O método Situacao() temnde devolver sempre uma String. Ao ver o código facilmente percebemos que ele vai sempre entrar em um dos if e não há qualquer problema. No entanto o compilador não entende isso e precisa de um return no final, caso não entre em nenhum if.
Uma solução é colocar uma linha return “”; no final.
Outra solução é eliminar o if final. Afinal de contas já sabemos que se a média não for maior que 7 nem menor que 3 terá de estar obrigatoriamente entre 3 e 7.

E

Valeu pela ajuda, consegui resolver com isso:

public String Situacao(){
    String resp = "";
    
   if (Media()>=3 && Media()<7)
       resp = "Prova final!";
   else
       if (Media()>=7)
           resp = "Aprovado!";
       else
           if (Media()<3)
               resp = "Reprovado!";
       return resp;
}
Criado 30 de março de 2009
Ultima resposta 31 de mar. de 2009
Respostas 3
Participantes 2