Dúvida Programa JAVA: parar a execução menos que uma condição seja satisfeita

5 respostas
X

Por favor, necessito do conhecimento e experiência de vocês. Gostaria de criar um programa em Java usando a caixa de diálogo (JOptionPane), porém que continuasse rodando - leia-se exibindo a caixa de diálogo - a menos que uma condição fosse satisfeita. Por exemplo, criar um programa em que o usuário digita uma senha, essa senha fica memorizada, e novamente pede ao usuário para que a senha seja digitada. Se a senha estiver correta o programa “fecha”, se não estiver correta o programa pede ao usuário que a senha seja digitada novamente; assim por diante até que a senha seja digitada corretamente de acordo com a senha que o usuário digitou inicialmente. Muito obrigado!

5 Respostas

ViniGodoy

Legal. E qual é a dúvida?

X

Olá! Estou com o seguinte código:

package Entrada_Grafica_JOptionPane;

import javax.swing.JOptionPane;

public class Exemplo_Exercicio {

	public static void main(String[] args) {

String cadastrosenha = null;
		String confirmasenha = null;
		double a;
		double b;
			
		
		cadastrosenha = JOptionPane.showInputDialog(null, "Cadastre sua Senha: ", JOptionPane.QUESTION_MESSAGE);
		
		a = Double.parseDouble(JOptionPane.showInputDialog(null, "Primeiro valor: ", JOptionPane.QUESTION_MESSAGE));
		b = Double.parseDouble(JOptionPane.showInputDialog(null, "Segundo valor: ", JOptionPane.QUESTION_MESSAGE));
		
		confirmasenha = JOptionPane.showInputDialog(null, "Confirme sua senha: ", JOptionPane.QUESTION_MESSAGE);

		if (confirmasenha.equals(cadastrosenha)) {
			JOptionPane.showMessageDialog(null,"Divisão entre os dois valores digitados: " + a/b);
		} else {
			JOptionPane.showMessageDialog(null, "Senha incorreta. ");

		
		}


	}	

}

Porém a caixa de diálogo é sempre fechada, gostaria de inserir um laço, talfez while, em que impedice que a caixa de diálogo fosse fechada a menos que o usuário digitasse a senha corretamente.

A questão é, onde inserir o laço nesse programa. Tentei algumas vezes, mas não está sendo possível realizar isso com o while.

Muito obrigado!

ViniGodoy
Algo assim?
package Entrada_Grafica_JOptionPane;

import javax.swing.JOptionPane;

public class Exemplo_Exercicio {
    public static void main(String[] args) {
        String cadastrosenha = JOptionPane.showInputDialog(null, "Cadastre sua Senha: ", JOptionPane.QUESTION_MESSAGE);
		
        double a = Double.parseDouble(JOptionPane.showInputDialog(null, "Primeiro valor: ", JOptionPane.QUESTION_MESSAGE));
        double b = Double.parseDouble(JOptionPane.showInputDialog(null, "Segundo valor: ", JOptionPane.QUESTION_MESSAGE));

        while (true) {		
            String confirmasenha = JOptionPane.showInputDialog(null, "Confirme sua senha: ", JOptionPane.QUESTION_MESSAGE);

            if (confirmasenha.equals(cadastrosenha)) {
                break;
            }
            JOptionPane.showMessageDialog(null, "Senha incorreta. ");
        }

        JOptionPane.showMessageDialog(null,"Divisão entre os dois valores digitados: " + a/b);  
    }
}
X

Beleza, ViniGodoy! Não tinha pensado em usar Flag;
Deu uma luz e tanto!
Obrigado mesmo, Abs

ViniGodoy

Xeque:
Beleza, ViniGodoy! Não tinha pensado em usar Flag;
Deu uma luz e tanto!
Obrigado mesmo, Abs

Oi.

Só ajustando a terminologia:

Eu não usei nenhuma flag.
Geralmente chamamos de flag uma variável booleana de controle.

De qualquer forma, fico feliz que tenha entendido o funcionamento do código.

Criado 21 de fevereiro de 2015
Ultima resposta 22 de fev. de 2015
Respostas 5
Participantes 2