Erro na logica !(resolvido)

3 respostas
M
o código não aparece erro mas, quando insiro um numero acima de de 3 ou 4 , ele mostra varios dias da semana de uma vez, eu queria que ele mostra-se somente o dia que tive-se o numero, mas não sei como fazer isso. eu sei que se colocar no if (dia >=5) ele vai imprimir oque tiver dentro do if enquanto o numero for maior que 5 sendo assim ele vai imprimir domingo também,então como resolvo isso ?
package javaapplication9;
import javax.swing.JOptionPane;
public class exer6 {
    public static void main (String[]args){
    
        int dia;
        
        dia = Integer.parseInt(JOptionPane.showInputDialog("insira um numero de 0 a 6 para conresponder a um dia da semana"));
                
        
        if (dia <= 0) {
            JOptionPane.showMessageDialog(null,"segunda-feira");     
        }
    if (dia >= 1){
        JOptionPane.showMessageDialog(null,"terça-feira");
    }
    if(dia >=2){
        JOptionPane.showMessageDialog(null,"quarta-feira");
    }
    if (dia >=3){
        JOptionPane.showMessageDialog(null,"quinta-feira");
    }
    if(dia >=4){
        JOptionPane.showMessageDialog(null,"sexta-feira");
    }
    if (dia >=5){
        JOptionPane.showMessageDialog(null,"sabado");
    }
if(dia >=6){
    JOptionPane.showMessageDialog(null,"domingo");
}
else if(dia >6){
    JOptionPane.showMessageDialog(null,"este dia da semana não existe digite outro numero ");
}
    }
}

3 Respostas

Luan_Kevin

tente trocar a condição >=numero por ==numero :thumbup:

FabricioPJ

Use switch-case… deixa o código mais limpo e resolveria seu problema de lógica.

http://www.cafeaulait.org/course/week2/42.html
http://www.roseindia.net/java/beginners/SwitchExample.shtml

S

marks!:
o código não aparece erro mas, quando insiro um numero acima de de 3 ou 4 , ele mostra varios dias da semana de uma vez, eu queria que ele mostra-se somente o dia que tive-se o numero, mas não sei como fazer isso.
eu sei que se colocar no if (dia >=5) ele vai imprimir oque tiver dentro do if enquanto o numero for maior que 5
sendo assim ele vai imprimir domingo também,então como resolvo isso ?

Amigo, tô gostando de ver seu esforço, nos exercícios. Como dito acima, a estrutura switch case pode ajudar:

package javaapplication9;   
import javax.swing.JOptionPane;   
public class exer6 {   
    public static void main (String[]args){   
       
        int dia;   
           
        dia = Integer.parseInt(JOptionPane.showInputDialog("insira um numero de 0 a 6 para conresponder a um dia da semana"));   
                   
        switch (dia) {

case 0 : JOptionPane.showMessageDialog(null,"Segunda");break; 
case 1 : JOptionPane.showMessageDialog(null,"Terça");break; 
case 2 : JOptionPane.showMessageDialog(null,"Quarta");break; 
case 3 : JOptionPane.showMessageDialog(null,"Quinta");break; 
case 4 : JOptionPane.showMessageDialog(null,"Sexta"); break;
case 5 : JOptionPane.showMessageDialog(null,"Sábado"); break;
case 6 : JOptionPane.showMessageDialog(null,"Domingo"); break;

default : JOptionPane.showMessageDialog(null,"numero não corresponde a nenhum dia da semana");

		}
	}
}

Deixa o código mais limpo.

Criado 12 de abril de 2012
Ultima resposta 12 de abr. de 2012
Respostas 3
Participantes 4