Qual estrutura de repetição devo usar?

9 respostas
dioni_deivid_dors

package exercinco;

import javax.swing.JOptionPane;

/**
*

  • @author Dioni Deivid
    */
    public class ExerCinco {

    /**

    • @param args the command line arguments
      */
      public static void main(String[] args) {

      int quantiAluno,Prova1,Prova2,mediafinal;
      
      String aux;
      
      String NomeAluno;
      

    aux= JOptionPane.showInputDialog(“Informe a quantidade de alunos:”);
    quantiAluno=Integer.parseInt(aux) ;

    do {

    NomeAluno = JOptionPane.showInputDialog("informe o nome do aluno ");

    aux = JOptionPane.showInputDialog(“informe a nota da primeira prova:”);
    Prova1 = Integer.parseInt(aux);

    aux = JOptionPane.showInputDialog(“informe a nota da segunda prova:”);
    Prova2 = Integer.parseInt(aux);

    mediafinal= (Prova1+Prova2)/2;
    

    JOptionPane.showMessageDialog(null,“media final do Aluno :”+NomeAluno+" é "+mediafinal);

    } while (quantiAluno==quantiAluno ); // queria saber qual estrutura devo usar e como devo , para o loop fazer a quantidades de vezes que o usuario informar

    }
    

    }

9 Respostas

Henrique_Moraes

Tente assim:

public static void main(String[] args) { 

   int quantiAluno,Prova1,Prova2,mediafinal, x=0;   
   String aux=""; 
   String NomeAluno=""; 


   quantiAluno= Integer.parseInt( JOptionPane.showInputDialog("Informe a quantidade de alunos:")); 
 
   do { 

      NomeAluno = JOptionPane.showInputDialog("informe o nome do aluno "); 

      aux = JOptionPane.showInputDialog("informe a nota da primeira prova:"); 
      Prova1 = Integer.parseInt(aux); 

      aux = JOptionPane.showInputDialog("informe a nota da segunda prova:"); 
      Prova2 = Integer.parseInt(aux); 

      mediafinal= (Prova1+Prova2)/2; 

      JOptionPane.showMessageDialog(null,"media final do Aluno :"+NomeAluno+" é "+mediafinal); 
     
      x = x+1;

   } while (quantiAluno > x ); 
}
dioni_deivid_dors

obrigado colega mas ,
o loop esta em 3 voltas , ou seja 3 vezes ele perguta o nome do aluno ,
eu quero que ele fassa o loop igual a quantidade de alunos
obrigado;…

Henrique_Moraes

dioni deivid dors:
obrigado colega mas ,
o loop esta em 3 voltas , ou seja 3 vezes ele perguta o nome do aluno ,
eu quero que ele fassa o loop igual a quantidade de alunos
obrigado;…

Então, a pergunta do nomo do aluno, está dentro do loop, por isso que repete.

dioni_deivid_dors

acho que me me expressei errado , o loop deve ser igual a quanditade de alunos ,
não a quantidade de provas,

Henrique_Moraes

dioni deivid dors:
acho que me me expressei errado , o loop deve ser igual a quanditade de alunos ,
não a quantidade de provas,

sim amigo, a lógica é essa, vc ja rodou ai ?

dioni_deivid_dors

olha só , tenhu que faze um programa assim :

para que no início
do programa seja solicitada a quantidade de alunos da classe. Para
cada aluno, o programa solicitará o nome do aluno e as notas das duas
provas e na sequência mostrará o nome e a média do aluno.

esse execicio ai tenhu que faze,

fasso ciencia da computação. valeu

dioni_deivid_dors

oh brother ta indo , valeu irmão

suelengc

Olá dioni deivid dors!

Para este seu caso a melhor opção seria usar o loop for, que é indicado para quando se conhece o número de repetições que será necessária… o loop while/do…while é mais usado quando não se conhece o número de repetições que será necessário fazer… Tem uma explicação legal neste outro tópico do GUJ http://www.guj.com.br/java/264564-resolvido-do-while-como-e-quando-usar--duvida

Seu caso com for ficaria assim:

for (int i = 0, i < quantiAluno, i++) {
            NomeAluno = JOptionPane.showInputDialog("informe o nome do aluno ");   
            
            aux = JOptionPane.showInputDialog("informe a nota da primeira prova:");   
            Prova1 = Integer.parseInt(aux);   
        
            aux = JOptionPane.showInputDialog("informe a nota da segunda prova:");   
            Prova2 = Integer.parseInt(aux);   
        
            mediafinal= (Prova1 + Prova2)/2;   
        
            JOptionPane.showMessageDialog(null,"media final do Aluno: " + NomeAluno + " é " + mediafinal);   
        }

Se você inicializar i com 0 então na condição usa i < quantiAluno, se inicializar i com 1 então na condição usa i <= quantiAluno.

Abraços!

dioni_deivid_dors

valeu brother

Criado 7 de abril de 2012
Ultima resposta 7 de abr. de 2012
Respostas 9
Participantes 3