Ir ao conteúdo
  • Cadastre-se
Angeluz Gabriel

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
                    
                
               
                

                
            
            
                
            
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Angeluz Gabriel

Isso acontece pois você está usando vários IFs independentes.

Para evitar o problema, você precisa usar um if dentro do outro.

Compartilhar este post


Link para o post
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");

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Este tópico está parado há muito tempo. Certifique-se que a sua mensagem tem a ver com o tema sendo discutido. Obrigado.

Junte-se à conversa

Você pode postar agora e cadastrar-se depois. Se você tem uma conta, faça o login para postar.

Visitante
Responder

×   Você colou conteúdo com formatação.   Restore formatting

  Só é possível ter até 75 emoticons.

×   O link foi automaticamente convertido para mostrar o conteúdo.   Clique aqui para mostrá-lo como link comum

×   Seu texto anterior foi restaurado.   Limpar o editor

×   You cannot paste images directly. Upload or insert images from URL.






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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...

GRÁTIS: minicurso “Como ganhar dinheiro montando computadores”

Gabriel TorresGabriel Torres, fundador e editor executivo do Clube do Hardware, acaba de lançar um minicurso totalmente gratuito: "Como ganhar dinheiro montando computadores".

Você aprenderá sobre o quanto pode ganhar, como cobrar, como lidar com a concorrência, como se tornar um profissional altamente qualificado e muito mais!

Inscreva-se agora!