Ajuda com While

Boa noite,

Galera sou novo no ramo da programação e estou iniciando agora em java, acredito que a minha duvida seja boba porem ja estou a 2 dias tentando chegar numa solução.
Ja dei uma vasculhada no forum e nao achei nada semelhante, bom ai vai o codigo!

                                  int contador;
                                  contador = 0;

                                  while (contador <=3)
                                  {
                                      {
                                           if (Ic_pai > Pai_idade) // Ic_pai é a Idade do Filho , e Pai_idade é a idade do pai.
                                           System.out.println("Confirme a data de Nascimento do pai" + Pai_idade);
                                           DATA_PAI.setText("");
                                           DATA_PAI.requestFocusInWindow();
                                     
                                      }
                                      
                                      contador = contador + 1;
                                                                            
                                      
                                  }

Bom a intenção seria um Redigite na data de nascimento do pai , e mesmo estando errada passar após confirmar 3 vezes.
Porem da forma que se encontra o código ele da a mensagem de erro porem nao volta para redigitar e segue executando o resto do codigo.
Valeu!!!

Ver se isso funciona:

 int contador;  
 contador = 0;  
   
 while (contador <=3)  
 {  
     {  
          while (Ic_pai > Pai_idade){
               System.out.println("Confirme a data de Nascimento do pai" + Pai_idade);  
               DATA_PAI.setText("");  
               DATA_PAI.requestFocusInWindow();  
          }
      
     }  
       
     contador = contador + 1;  
                                             
       
# }

[quote=Ramundodavy]Ver se isso funciona:

[code]
int contador;
contador = 0;

while (contador <=3)
{
{
while (Ic_pai > Pai_idade){
System.out.println(“Confirme a data de Nascimento do pai” + Pai_idade);
DATA_PAI.setText("");
DATA_PAI.requestFocusInWindow();
}

 }  
   
 contador = contador + 1;  

}

[/code][/quote]

Ainda nao rolou amigao.
Entrou em loop infinito no System.out.println(“Confirme a data de Nascimento do pai” + Pai_idade);

O que são esses “{” dentro do while? Acho que você não precisa deles.

int contador = 0;
while (contador <=3)
{
    if (Ic_pai > Pai_idade) // Ic_pai é a Idade do Filho , e Pai_idade é a idade do pai.
        System.out.println("Confirme a data de Nascimento do pai" + Pai_idade);
    DATA_PAI.setText("");
    DATA_PAI.requestFocusInWindow();

    contador = contador + 1;
}

Repare bem no que você está fazendo… Se precisar que o DATA_PAI.setText("") aconteça somente se a condição do if for verdadeira, você precisa usar “{” e “}” pra abranger toda o código que deve acontecer se a condição for verdadeira.

[quote=Andre Brito]O que são esses “{” dentro do while? Acho que você não precisa deles.

int contador = 0;
while (contador <=3)
{
    if (Ic_pai > Pai_idade) // Ic_pai é a Idade do Filho , e Pai_idade é a idade do pai.
        JOptionPane.showMessageDialog(this,"Confirme a data de Nascimento do pai" + Pai_idade);
        DATA_PAI.setText("");
        DATA_PAI.requestFocusInWindow();

    contador = contador + 1;
}

Repare bem no que você está fazendo… Se precisar que o DATA_PAI.setText("") aconteça somente se a condição do if for verdadeira, você precisa usar “{” e “}” pra abranger toda o código que deve acontecer se a condição for verdadeira.[/quote]

André desta maneira que vc citou executa o DATA_PAI.setText("") , porem ele nao me da opção de redigitar o campo da data de nascimento e apos a 3º repeticao do while ele assume a data digitada inicialmente e salta para o proximo campo.

olha, as chaves do if estao faltando. tenta dessa forma:

int contador;   
contador = 0;   
  
while (contador <=3){   
         if (Ic_pai > Pai_idade) {  
         System.out.println("Confirme a data de Nascimento do pai" + Pai_idade);   
         DATA_PAI.setText("");   
         DATA_PAI.requestFocusInWindow();
         }
    contador++;    
}