Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

jvoliveira

while

Recommended Posts

Pessoal, sou novo em java então ignorem se a logica não estiver muito boa! rs
Então! Preciso gravar a turma que o usuario escolher, porém entra em loop infinito mesmo digitando uma das opções corretas! Alguem pode me ajudar?

turma = JOptionPane.showInputDialog("Tecle:\n 1 para Informática Integrado IA\n 2 para Informática Integrado IB");
     while ((turma !="1")&(turma!="2")  || turma.equals("")) 
     {
    	 if(turma=="")//---------------------------------------->3
    	 {
     JOptionPane.showMessageDialog(null,"Você não respondeu a pergunta.");
     turma = JOptionPane.showInputDialog("Tecle 1 para Informática Integrado IA\n 2 para Informática Integrado IB");
       	 }
     }

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem um AND binário (bitwise) ali no meio das condições do while...Veja se não é isso.

 

Não seria melhor assim?

 

 

do {
   turma = JOptionPane.showInputDialog("......");
   if ("".equals(turma))
      JOptionPane.showMessageDialog(null, "Você.....");
} while ("".equals(turma) || (!"1".equals(turma) && !"2".equals(turma)));

 

Ainda, que tal usar enum ou algum outro container p/ evitar constantes mágicas no código? Assim vc poderia evitar comparar todas as turmas explicitamente, só verificando se o dado informado pertence à lista de turmas cadastradas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Brigadão isis! Funcionou do jeito que eu queria! =D

Eu ainda to lendo sobre container..

E como ainda to meio confuso sobre como funciona achei melhor não colocar por enquanto!

Muito Obrigado :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.