Ajudinha da Galera a resolver este problema

8 respostas
S

Bom dia!

Sou novo aqui no forum e no java também .. estou aprendendo agora na faculdade.
No caso gostaria que vocês me ajudassem com um problema, o professor pediu um trabalho só que não consigo termina-lo pois não consigo fazer com que o programa continue rodando.

Ja coloquei o maldito do WHile em todos os lugares possiveis e porque o programa não continua rodando, do jeito que está abaixo ele roda uma vez dai para e assim não é legal não posso deixar o programa assim.

teria como alguem me explicar onde devo colocar o while e porque?

segue abaixo o código:

Obrigado desde já ..

package javaapplication2;
import java.io.*;
class statusaluno{
 public static void main ( String args []){
  BufferedReader entrada;
  entrada = new BufferedReader( new InputStreamReader(System.in));
   float frequencia, nota1, nota2, nota3, media = 0;
   int totalaulas, totalfaltas;

                        try{

    

  System.out.println("Digite o Total de Aulas do Semestre");
  totalaulas = Integer.parseInt( entrada.readLine());
  System.out.println("Digite o Total de Faltas no Semestre");
  totalfaltas = Integer.parseInt( entrada.readLine());
  System.out.println("Digite a nota da AV1.");
  nota1 = Float.parseFloat( entrada.readLine());
  System.out.println("Digite a nota da AV2.");
  nota2 = Float.parseFloat( entrada.readLine());
  System.out.println("Digite a nota da AV3.");
  nota3 = Float.parseFloat( entrada.readLine());


  frequencia = (float) (totalaulas * 0.25);
     if (totalfaltas < frequencia) {
        if (nota1 >= nota3 && nota2 >= nota3) {
   media = (nota1 + nota2) /2;
                }
        else {
        if (nota2 >= nota1  && nota3 >= nota1) {
   media = (nota2 + nota3) /2;
              } }
        if (nota1 >= nota2  && nota3 >= nota2){
   media = (nota1 + nota3) /2;
              }

   
  
if (media >=5) {
System.out.println ("O Aluno foi aprovado pois nao atingiu o limite de 25% de faltas.");
System.out.println("E porque sua média foi de " + media);
 }
if (media < 5){
System.out.println ("O Aluno não atingiu o limite de faltas.");
System.out.println("Porém foi reprovado pois sua média foi inferior a 5, média de:"+ media);
}


     }


else {

                    System.out.println ("O aluno está reprovado por atingir mais de 25% do limite de faltas ");
  }
            

}
catch (Exception e) {
   System.out.println("Ocorreu um erro durante a leitura ! ");
  }

 
 }
}

8 Respostas

fernandofavari

Pq vc não tenta usar o comando “do while”???

renanedpedroso
package javaapplication2; 

import java.io.*;

class statusaluno{

    public static void main(String args[]) {
        BufferedReader entrada;
        entrada = new BufferedReader(new InputStreamReader(System.in));
        float frequencia, nota1, nota2, nota3, media = 0;
        int totalaulas, totalfaltas;

        while (true) {
            try {



                System.out.println("Digite o Total de Aulas do Semestre");
                totalaulas = Integer.parseInt(entrada.readLine());
                System.out.println("Digite o Total de Faltas no Semestre");
                totalfaltas = Integer.parseInt(entrada.readLine());
                System.out.println("Digite a nota da AV1.");
                nota1 = Float.parseFloat(entrada.readLine());
                System.out.println("Digite a nota da AV2.");
                nota2 = Float.parseFloat(entrada.readLine());
                System.out.println("Digite a nota da AV3.");
                nota3 = Float.parseFloat(entrada.readLine());


                frequencia = (float) (totalaulas * 0.25);
                if (totalfaltas < frequencia) {
                    if (nota1 >= nota3 && nota2 >= nota3) {
                        media = (nota1 + nota2) / 2;
                    } else {
                        if (nota2 >= nota1 && nota3 >= nota1) {
                            media = (nota2 + nota3) / 2;
                        }
                    }
                    if (nota1 >= nota2 && nota3 >= nota2) {
                        media = (nota1 + nota3) / 2;
                    }



                    if (media >= 5) {
                        System.out.println("O Aluno foi aprovado pois nao atingiu o limite de 25% de faltas.");
                        System.out.println("E porque sua média foi de " + media);
                    }
                    if (media < 5) {
                        System.out.println("O Aluno não atingiu o limite de faltas.");
                        System.out.println("Porém foi reprovado pois sua média foi inferior a 5, média de:" + media);
                    }


                } else {

                    System.out.println("O aluno está reprovado por atingir mais de 25% do limite de faltas ");
                }

                System.out.println();

                System.out.println("Deseja continuar? [S / N]");
                String sair = entrada.readLine();

                if(sair.trim().toUpperCase().equals("N")){
                    break;
                }
                System.out.println("\n\n\n");

            } catch (Exception e) {
                System.out.println("Ocorreu um erro durante a leitura ! ");
            }


        }

    }
}

Espero ter ajudado.

Abraço!

Scoobydoo
package javaapplication2;   
import java.io.*;   
class statusaluno{   
public static void main ( String args []){   
  BufferedReader entrada;   
  entrada = new BufferedReader( new InputStreamReader(System.in));   
   float frequencia, nota1, nota2, nota3, media = 0;   
   int totalaulas, totalfaltas;   
  String continuar = S;

  while Continuar.equals("S") {
       System.out.println("Deseja Continuar ?");   
       Continuar = (entrada.readLine());   
             try{     
                           System.out.println("Digite o Total de Aulas do Semestre");   
                           totalaulas = Integer.parseInt( entrada.readLine());   
                           System.out.println("Digite o Total de Faltas no Semestre");   
                           totalfaltas = Integer.parseInt( entrada.readLine());   
                           System.out.println("Digite a nota da AV1.");   
                           nota1 = Float.parseFloat( entrada.readLine());   
                           System.out.println("Digite a nota da AV2.");   
                           nota2 = Float.parseFloat( entrada.readLine());   
                           System.out.println("Digite a nota da AV3.");   
                           nota3 = Float.parseFloat( entrada.readLine());   

                          frequencia = (float) (totalaulas * 0.25);   
                         if (totalfaltas < frequencia) {   
                                         if (nota1 >= nota3 && nota2 >= nota3) {   
                                             media = (nota1 + nota2) /2;   
                                         }  else {   
                                               if (nota2 >= nota1  && nota3 >= nota1) {   
                                                    media = (nota2 + nota3) /2;   
                                               } 
                                         }   
                                    if (nota1 >= nota2  && nota3 >= nota2){   
                                          media = (nota1 + nota3) /2;   
                                    }   
                                    if (media >=5) {   
                                        System.out.println ("O Aluno foi aprovado pois nao atingiu o limite de 25% de faltas.");   
                                        System.out.println("E porque sua média foi de " + media);   
                                    }   
                                    if (media < 5){   
                                       System.out.println ("O Aluno não atingiu o limite de faltas.");   
                                       System.out.println("Porém foi reprovado pois sua média foi inferior a 5, média de:"+ media);   
                                    }   
                            }  else {   
                    System.out.println ("O aluno está reprovado por atingir mais de 25% do limite de faltas ");   
  }    
  
}   
catch (Exception e) {   
   System.out.println("Ocorreu um erro durante a leitura ! ");   
  }   
  }
  
}   
}

A unica coisa que voce não deve repetir é a Declaração de Variaveis

Hebertbc

Desse jeito aki ele roda eternamente, caso seja o que queria.

import java.io.BufferedReader;
import java.io.InputStreamReader;

class statusaluno {

    public static void main(String args[]) {
        BufferedReader entrada;
        entrada = new BufferedReader(new InputStreamReader(System.in));
        float frequencia, nota1, nota2, nota3, media = 0;
        int totalaulas, totalfaltas;
        //Inicio do laço
        while (true) {
            try {
                System.out.println("Digite o Total de Aulas do Semestre");
                totalaulas = Integer.parseInt(entrada.readLine());
                
                System.out.println("Digite o Total de Faltas no Semestre");
                totalfaltas = Integer.parseInt(entrada.readLine());
                
                System.out.println("Digite a nota da AV1.");
                nota1 = Float.parseFloat(entrada.readLine());
                
                System.out.println("Digite a nota da AV2.");
                nota2 = Float.parseFloat(entrada.readLine());
                
                System.out.println("Digite a nota da AV3.");
                nota3 = Float.parseFloat(entrada.readLine());

                frequencia = (float) (totalaulas * 0.25);                
                if (totalfaltas < frequencia) {
                    if (nota1 >= nota3 && nota2 >= nota3) {
                        media = (nota1 + nota2) / 2;
                    } else {
                        if (nota2 >= nota1 && nota3 >= nota1) {
                            media = (nota2 + nota3) / 2;
                        }
                    }
                    if (nota1 >= nota2 && nota3 >= nota2) {
                        media = (nota1 + nota3) / 2;
                    }

                    if (media >= 5) {
                        System.out.println("O Aluno foi aprovado pois nao atingiu o limite de 25% de faltas.");
                        System.out.println("E porque sua mãdia foi de " + media);
                    }
                    if (media < 5) {
                        System.out.println("O Aluno não atingiu o limite de faltas.");
                        System.out.println("Porem foi reprovado pois sua mãdia foi inferior a 5, media de:" + media);
                    }

                } else {

                    System.out.println("O aluno está reprovado por atingir mais de 25% do limite de faltas ");
                }
            } catch (Exception e) {
                System.out.println("Ocorreu um erro durante a leitura ! ");
                e.printStackTrace();
            }
            //Somente para efeito visual
            System.out.println("\n---------------------------------------------------------\n");
        }//Fim do laço
    }
}
S

Brigadao galera … valeu mesmo

eu só pensei em deixar o programa rodando + esqueci de que ele tem que parar uma hora tambem … aff

o Scoobydoo deixou de uma forma que pergunta pra pessoa se ela quer continuar ou não eu queria fazer desta forma ai que é bem melhor …

só que nao consegui rodar o programa que ele incrementou …

to tentando aki … + nao consigo

vocês estão me ajudando pacacete pra mim tudo isso ficava depois do try … + to vendo que é antes …

se algumem poder me ajudar com esse lance de deseja continuar … ou do jeito que to tentando agora que se o primeiro numero for negativo sai do program,a eu agradeço

valeu!

renanedpedroso

Roda o que eu postei amigo.

Observe que a pergunta de continuar vem mais no final do código.

S

renanedpedroso

desculpa amigão não havia visto o final ... rodei aki e ficou perfeito !!!!!!! !! BRIGADAO MESMo !!

+ ae de tanto eu tentar e olhar o exemplo de vcs

fiz esta porcaria que funcionou + eh melhor usar o seu exemplo renane

to progredindo .. kkk valeu ! obrigado pela ajuda !!

import java.io.BufferedReader;
import java.io.IOException;
   import java.io.InputStreamReader;

   class statusaluno {

       public static void main(String args[]) throws IOException {
           BufferedReader entrada;
           entrada = new BufferedReader(new InputStreamReader(System.in));
           float frequencia, nota1, nota2, nota3, media = 0;
           int totalaulas, totalfaltas, cont = 0;

System.out.println("Digite um numero maior que 0 para continuar ou um número negativo para fechar o programa");
cont = Integer.parseInt(entrada.readLine());



               try {
         if (cont >= 0)           {     while (true) {  

                   System.out.println("Digite o Total de Aulas do Semestre");
                   totalaulas = Integer.parseInt(entrada.readLine());

                   System.out.println("Digite o Total de Faltas no Semestre");
                   totalfaltas = Integer.parseInt(entrada.readLine());

                   System.out.println("Digite a nota da AV1.");
                   nota1 = Float.parseFloat(entrada.readLine());

                   System.out.println("Digite a nota da AV2.");
                   nota2 = Float.parseFloat(entrada.readLine());

                   System.out.println("Digite a nota da AV3.");
                   nota3 = Float.parseFloat(entrada.readLine());

                   frequencia = (float) (totalaulas * 0.25);
                   if (totalfaltas < frequencia) {
                       if (nota1 >= nota3 && nota2 >= nota3) {
                           media = (nota1 + nota2) / 2;
                       } else {
                           if (nota2 >= nota1 && nota3 >= nota1) {
                              media = (nota2 + nota3) / 2;
                           }
                       }
                       if (nota1 >= nota2 && nota3 >= nota2) {
                           media = (nota1 + nota3) / 2;
                       }

                       if (media >= 5) {
                           System.out.println("O Aluno foi aprovado pois nao atingiu o limite de 25% de faltas.");
                           System.out.println("E porque sua mãdia foi de " + media);
                       }
                       if (media < 5) {
                           System.out.println("O Aluno não atingiu o limite de faltas.");
                           System.out.println("Porem foi reprovado pois sua mãdia foi inferior a 5, media de:" + media);
                       }

                   } else {

                       System.out.println("O aluno está reprovado por atingir mais de 25% do limite de faltas ");
                   }


               System.out.println("\n---------------------------------------------------------\n");

               
         } }

               } catch (Exception e) {
                   System.out.println("Ocorreu um erro durante a leitura ! ");
                   e.printStackTrace();
               }
                System.out.println("\n---------------------------------------------------------\n");

       }
   }
renanedpedroso

Estamos aí pra ajudar mesmo! :slight_smile:

Abraço!

Criado 24 de março de 2010
Ultima resposta 24 de mar. de 2010
Respostas 8
Participantes 5