declaração if-else não funcionam ..........................help-me

16 respostas
victor_fortes
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package aluno;

/**
 *
 * @author Diamantino
 */

public class aluno {
    
   private String nome_aluno;
   private int numero_matricula;
   private int turma;
 static int nota=20; [b]-------------->valor da nota[/b]
   
   private String cadeira="L.portuguesa,Matemática,L.estrangeira,Fisica,Quimica,E.M.C,E.V.P,História,E.fisica";
      

   public String getnome_aluno() {  
      return nome_aluno;   
   }  
   public void setnome_aluno(String nome_aluno){  
     this.nome_aluno=nome_aluno;  
      }  
   public int getnumero_matricula() {  
      return numero_matricula;   
   }  
 public void setnumero_matricula(int numero_matricula) {  
          this.numero_matricula=numero_matricula;  
      }  
   public int getturma() {  
      return numero_matricula; 
   }
   public void setturma(int turma) {  
          this.turma=turma;  
      }  
   public int getnota() {  
      return nota; 
   }
    @SuppressWarnings("static-access")
   public void setnota(int nota) {  
          this.nota=nota;  
      } 
    public String getcadeira (){
        return cadeira;
    }
    public void setcadeira(String cadeira) {
        this.cadeira=cadeira;
    }

    
    
    
    public void print(){
        System.out.println("Nome do Aluno: " +nome_aluno);
        System.out.println("Número da Matricula: " +numero_matricula);
        System.out.println("Turma:" +turma);
        System.out.println("Cadeira: " +cadeira);
        System.out.println("Nota: " +nota);
    }
    
    
    
    
    
  
    @SuppressWarnings("static-access")
    public static void main(String[] args) {
        //TODO code application logic here
      
        if(nota>=10){ System.out.println("Apto");}
        else if((nota<=9)){ System.out.println("Não Apto");}[b]------>   // aqui está a declaração if-else....[/b].    
        
       
       aluno aluno1=new aluno(); 
       aluno aluno2=new aluno();
       aluno aluno3=new aluno();
       aluno aluno4=new aluno();
       aluno aluno5=new aluno();
       aluno aluno6=new aluno();
       
       aluno1.setnome_aluno("Filipe Fuge Kichindo");
       aluno1.setnumero_matricula(90001);
       aluno1.setturma(1);
       aluno1.setcadeira("L.portuguesa");
       aluno1.nota=9;---------------------------------------->//mas sempre depois de compilar dá sempre apto,mesmo
                                                                                 //mesmo que eu colocar a nota=1; depois de compilar ele
                                                                                 //apresenta apto  
      aluno1.print();
       
   
              
    }

    }

16 Respostas

G

Bom dia, nota está 20 sempre.

aluno aluno1=new aluno(); 
       aluno aluno2=new aluno();
       aluno aluno3=new aluno();
       aluno aluno4=new aluno();
       aluno aluno5=new aluno();
       aluno aluno6=new aluno();
       
       aluno1.setnome_aluno("Filipe Fuge Kichindo");
       aluno1.setnumero_matricula(90001);
       aluno1.setturma(1);
       aluno1.setcadeira("L.portuguesa");
       aluno1.nota=9;---------------------------------------->//mas sempre depois de compilar  sempre apto,mesmo
                                                                                 //mesmo que eu colocar a nota=1; depois de compilar ele

coloca isso antes do if.

flw.

victor_fortes

valeu Gujuser…será que posso criar outras declaraçãoes if-else com outras disciplinas?

phpinheiro

a nota precisa ser static mesmo?

Gerson_da_S_Lima

Cara dá uma olhada onde tu tá colocando a condição if else e a declaração do atributo nota…
Quando tu manda rodar esse programa ele roda primeiro o método main, é nele que tudo começa, não vou te dizer o problema agora, dá uma pensada e ver se encontra o problema, se não conseguir manda outra mensagem que eu te ajudo de novo.

G

Como assim?

fmad27

Cara é importante lembrar que um atributo static pertence a classe e não ao objeto,
portanto você deve ter certeza que este atributo deve ser static.
Porém o seu problema é só o momento em que o if está sendo executado dentro do método main.

victor_fortes
mais ou menos assim Gujuser
aluno1.setnome_aluno("Filipe Fuge Kichindo");
       aluno1.setnumero_matricula(90001);
       aluno1.setturma(1);
       aluno1.setcadeira("L.portuguesa");
       aluno1.nota=9;
      
       if(nota>=10){ System.out.println("Apto");}
        else if((nota<=9)){ System.out.println("Não Apto");} ----------------->1ª declaração if else      
        
        aluno1.setcadeira("Matemática");
        aluno1.nota=11;
        
      if(nota>=10){ System.out.println("Apto");}
        else if((nota<=9)){ System.out.println("Não Apto");}   --------------------->outra declaração if-else   
       
       aluno1.print();
G

Opa, então cara…
Vc percebe que vc está replicando o mesmo código, faz o seguinte que ficará melhor.

aluno1.setnome_aluno("Filipe Fuge Kichindo");
       aluno1.setnumero_matricula(90001);
       aluno1.setturma(1);
       aluno1.setcadeira("L.portuguesa");
       aluno1.nota=9;
      
       checarAptidao();
        
        aluno1.setcadeira("Matemática");
        aluno1.nota=11;
        
       checarAptidao();

       aluno1.print();

Aí cria lá um método que tem o que vc precisa checar:

public checarAptidao(){ if(nota>=10){ System.out.println("Apto");} else if((nota<=9)){ System.out.println("Não Apto");} }

certo?

flw.

Gerson_da_S_Lima
victor fortes:
mais ou menos assim Gujuser
aluno1.setnome_aluno("Filipe Fuge Kichindo");
       aluno1.setnumero_matricula(90001);
       aluno1.setturma(1);
       aluno1.setcadeira("L.portuguesa");
       aluno1.nota=9;
      
       if(nota>=10){ System.out.println("Apto");}
        else if((nota<=9)){ System.out.println("Não Apto");} ----------------->1ª declaração if else      
        
        aluno1.setcadeira("Matemática");
        aluno1.nota=11;
        
      if(nota>=10){ System.out.println("Apto");}
        else if((nota<=9)){ System.out.println("Não Apto");}   --------------------->outra declaração if-else   
       
       aluno1.print();

Eu acho que você não entendeu ou não leu a minha mensagem acima, coloca essas condições if else dentro do seu método print()

victor_fortes
ja fiz como disseste gujuser, mas ao compilar as qualificações não apto e apto aparecem por cima de tudo e não em baixo da respectiva cadeira. veja depois de compilado:

Não Apto
Apto
Nome do Aluno: Filipe Fuge Kichindo
Número da Matricula: 90001
Turma:1
Cadeira: Matemática
Nota: 11
BUILD SUCCESSFUL (total time: 1 second)

victor_fortes

ao compilar só aparece a cadeira de matematica

public class aluno {
    
   private String nome_aluno;
   private int numero_matricula;
   private int turma;
   static int nota=20; 
   private String cadeira="L.portuguesa,Matemática,L.estrangeira,Fisica,Quimica,E.M.C,E.V.P,História,E.fisica";
      

   public String getnome_aluno() {  
      return nome_aluno;   
   }  
   public void setnome_aluno(String nome_aluno){  
     this.nome_aluno=nome_aluno;  
      }  
   public int getnumero_matricula() {  
      return numero_matricula;   
   }  
 public void setnumero_matricula(int numero_matricula) {  
          this.numero_matricula=numero_matricula;  
      }  
   public int getturma() {  
      return numero_matricula; 
   }
   public void setturma(int turma) {  
          this.turma=turma;  
      }  
   public int getnota() {  
      return nota; 
   }
    @SuppressWarnings("static-access")
   public void setnota(int nota) {  
          this.nota=nota;  
      } 
    public String getcadeira (){
        return cadeira;
    }
    public void setcadeira(String cadeira) {
        this.cadeira=cadeira;
    }

    
    
    
    public void print(){
        System.out.println("Nome do Aluno: " +nome_aluno);
        System.out.println("Número da Matricula: " +numero_matricula);
        System.out.println("Turma:" +turma);
        System.out.println("Cadeira: " +cadeira);
        System.out.println("Nota: " +nota);
    }
        public void checarAptidao(){  
          if(nota>=10){ System.out.println("Apto");}    
         else if((nota<=9)){ System.out.println("Não Apto");}  
    }  
    
    
    
    
  
    @SuppressWarnings("static-access")
    public static void main(String[] args) {
        //TODO code application logic here
        aluno aluno1=new aluno(); 
       aluno aluno2=new aluno();
       aluno aluno3=new aluno();
       aluno aluno4=new aluno();
       aluno aluno5=new aluno();
       aluno aluno6=new aluno();
       
       aluno1.setnome_aluno("Filipe Fuge Kichindo");
       aluno1.setnumero_matricula(90001);
       aluno1.setturma(1);
       aluno1.setcadeira("L.portuguesa");
       aluno1.nota=9;
       aluno1.checarAptidao();
       aluno1.setcadeira("Matemática");
       aluno1.nota=11;
       aluno1.checarAptidao();   
       
       aluno1.print();
       
   
              
    }

    }
phpinheiro

victor,

coloque o metodo checar aptidao dentro do print, na ultima linha dele.

Tipo assim:

public void print(){  
        System.out.println("Nome do Aluno: " +nome_aluno);  
        System.out.println("Número da Matricula: " +numero_matricula);  
        System.out.println("Turma:" +turma);  
        System.out.println("Cadeira: " +cadeira);  
        System.out.println("Nota: " +nota);
        System.out.print("Situacao: ");
        checarAptidao();
    }
victor_fortes

ja coloquei o metodo checar aptidao no metodo print…
mas ao compilar ela só aparece a nota de matematica, mas não aparece a nota de L.portuguesa

G

Colocando dentro do print(),
a cada nota setada, vc deverá chamar o método print abaixo.

aluno1.setnome_aluno("Filipe Fuge Kichindo");  
aluno1.setnumero_matricula(90001);  
aluno1.setturma(1);  
aluno1.setcadeira("L.portuguesa");  
aluno1.nota=9;  
aluno1.print();
aluno1.setcadeira("Matemática");  
aluno1.nota=11;  
aluno1.print();

flw.

phpinheiro

exatamente…

leandronsp

No main vc está substituindo a variavel cadeira. Primeiro vc joga L.Portuguesa e depois Matematica. Ele va imprimir o último: Matematica.

Não entendi o pq da nota ser static.

Esse processamento de informações é referente às avaliações finais? Pq se for, separa a classe aluno da disciplina e das avaliações.
Ou seja:

  • classe Aluno
  • classe Disciplina
  • classe Avaliação

Creio que assim deve ficar melhor e mais legível o sistema.

Espero ter ajudado.
[]´s

Criado 2 de abril de 2009
Ultima resposta 2 de abr. de 2009
Respostas 16
Participantes 6