Ir ao conteúdo
  • Cadastre-se

Mensagem do else aparece mais de uma vez


Posts recomendados

Estou aprendendo a programar em java na minha faculdade (Engenharia de Software) e estou usando Netbeans para testar os programas que faço.

No que estou fazendo atualmente, a mensagem do else, que deveria aparecer uma vez, acaba aparecendo mais de uma vez.

 

Segue o código:

 

import java.util.Scanner;
public class ex2{
    public static void main(String[]args){
        Scanner input = new Scanner(System.in);
        int dia;
        int mes;
       
        System.out.println("Insira o dia");
        dia = input.nextInt();
         System.out.println("Insira o mês");
         mes = input.nextInt(); 
    
                if (mes == 1 || mes == 3 || mes == 5 || mes == 7 || mes == 8
                    || mes == 10 || mes == 12)
                if(dia > 0 && dia <=31)
               
                
                    System.out.println("Datá válida. Data: "+ dia +"/ "+mes+"/ "+2016);
                
                else 
                    System.out.println("Dia inválido");
               
                           
             if(mes == 4 || mes==6 || mes==9 || mes==11)
            
                if(dia>0 && dia <=30)
                    System.out.println("Datá válida. Data: "+ dia +"/ "+mes+"/ "+2016);
                    
             else
                    System.out.println("Dia inválido");
             
                  
            if(mes == 2 && dia > 0 && dia <=29)
                System.out.println("Datá válida. Data: "+ dia +"/ "+mes+"/ "+2016);
            
            else
                    System.out.println("Dia inválido");
            
                
                if (mes <1 || mes >12)
                    System.out.println("Mês inválido");
                
                
                if (dia <1 || dia >31)
                    System.out.println("Dia inválido");
                
                
    }
}


                            
                Quando fui testar para ver se estava compilando, eu coloquei um dia inválido para ver se estava aparecendo a mensagem do else certa. A mensagem apareceu, mas três vezes:

                 Insira o dia
                 32
                 Insira o mês
                 5
                 Dia inválido
                 Dia inválido
                 Dia inválido
                    
                
               
                

                
            
            
                
            
 

Link para o comentário
Compartilhar em outros sites

Amigo, tente utilizar as chaves "{" para facilitar onde abre e fecha a sua condição.

 

Outra coisa, perceba que dentro de um ELSE possui outros IFs com as mesmas mensagens. "Dia Inválido". Se a primeira condição for respeitada, aparecerá a mensagem. Se cair no Else, também aparecerá a mensagem. Evite usar linhas desse tipo, tentando deixar o código mais limpo. Por exemplo, no último ELSE:

 

else                     
//System.out.println("Dia inválido");                                              

if (mes <1 || mes >12)                     
  System.out.println("Mês inválido");                                                   
  
if (dia <1 || dia >31)                     
  System.out.println("Dia inválido");

 

 

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...