Novato em programação, problema com laços e estruturas de decisão RESOLVIDO

11 respostas
P
Pessoal é um prazer poder participar deste forum, pessoal estou com duvidas no algoritmo a serguir, estou praticando para o meu tcm e criei o algoritmo a seguir conforme o enunciado. porem quando peço para o mesmo compilar o mesmo executa a açã porem não funciona da forma exata. ele ignora o pedido da senha e executa a ação de forma erronea.

segue o algoritmo.



    import javax.swing.JOptionPane;

  class teste {

public static void main  (String args[])
                 {
//++++++++++Declaração de variaveis.

int	erro, erro_opcao, opcao;
float saldo_inicial, emprestimo, emprestimo_s, saque, aux;
string nome, senha, senha_d ;

//++++++++++ fim da declaração de variaveis.


//-------Declaração de constantes------------.


saldo_inicial = 1000;
emprestimo    = 5000;

//-------Fim declaração de constantes------------.



//-------Pedidos de dados------------.
nome = JOptionPane.showInputDialog("Bom dia Senhor(a), por favor digite o seu nome");

senha = JOptionPane.showInputDialog("Digite uma senha");


opcao = JOptionPane.showInputDialog("Bom dia Senhor(a) "+nome+" o que o senhor deseja fazer?"+

"\n\n\nMenu:digite 1 para saldo,"+
		      "2 para deposito,"+
		      "3 para saque,"+
		      "4 para emprestimo,"+
		      "5 para saida");


//-------Fim pedidos de dados------------.



//------inicio estrutura de decisao-----.



//***************************inicio Saldo

aux =0;
if (opcao == 1) {



//Verificador de senha

     senha_d = JOptionPane.showInputDialog("Por favor digite a sua senha para acessar realizar a consulta de saldo");


   erro = 0;
   while (senha_d != senha) {

          JOptionPane.showMessageDialog(null,"Senha digitada esta incorreta, por favor tente denovo");
		    erro++;
		}

	   	if (erro >=3)
		    JOptionPane.showMessageDialog(null,"Voce errou sua senha 3 vezes, programa encerrado");

// Fim Verificador de senha
			else
			    JOptionPane.showMessageDialog(null,"Senhor(a) "+nome+" seu saldo atual é: "+saldo_inicial+" 

Reais" );




	  }
      }

11 Respostas

SandroSoftwares

opção é inteiro logo vc tem que transformar o resultado da pergunta em inteiro!

opcao = Integer.parseInt(JOptionPane.showInputDialog("Bom dia Senhor(a) " + nome + " o que o senhor deseja fazer?"
                + "\n\n\nMenu: "
                + "\nDigite 1 para saldo,"
                + "\n2 para deposito,"
                + "\n3 para saque,"
                + "\n4 para emprestimo,"
                + "\n5 para saida"));

senha é String então vc comara usando o equals:

while (!(senha_d.equals(senha))) { // se for diferente... olha o !

                JOptionPane.showMessageDialog(null, "Senha digitada esta incorreta, por favor tente denovo");
                erro++;
            }
P

esta comparação foi efetuada porem o problema é o seguinte. ele está dando pal na hora de pedir a senha ele pede a senha e executa a primeira ação porem ele mostra mais de uma vez o saldo e mesmo com a senha_d sendo diferente da senha ele mostra o valor solicitado.

SandroSoftwares

use a estrutura do while

teste ai pra vc ver:

//++++++++++Declaração de variaveis.

        int erro, erro_opcao, opcao;
        float saldo_inicial, emprestimo, emprestimo_s, saque, aux;
        String nome, senha, senha_d;

//++++++++++ fim da declaração de variaveis.


//-------Declaração de constantes------------.


        saldo_inicial = 1000;
        emprestimo = 5000;

//-------Fim declaração de constantes------------.



//-------Pedidos de dados------------.
        nome = JOptionPane.showInputDialog("Bom dia Senhor(a), por favor digite o seu nome");

        senha = JOptionPane.showInputDialog("Digite uma senha");


        opcao = Integer.parseInt(JOptionPane.showInputDialog("Bom dia Senhor(a) " + nome + " o que o senhor deseja fazer?"
                + "\n\n\nMenu: "
                + "\nDigite 1 para saldo,"
                + "\n2 para deposito,"
                + "\n3 para saque,"
                + "\n4 para emprestimo,"
                + "\n5 para saida"));


//-------Fim pedidos de dados------------.



//------inicio estrutura de decisao-----.



//***************************inicio Saldo

        aux = 0;
        if (opcao == 1) {



//Verificador de senha
            erro = 0;
do{
            senha_d = JOptionPane.showInputDialog("Por favor digite a sua senha para acessar realizar a consulta de saldo");
  JOptionPane.showMessageDialog(null, "Senha digitada esta incorreta, por favor tente denovo");
                erro++;

            
            } while ((!(senha_d.equals(senha))) && (erro < 3));

              
                
            

            if (erro >= 3) {
                JOptionPane.showMessageDialog(null, "Voce errou sua senha 3 vezes, programa encerrado");
            } // Fim Verificador de senha
            else {
                JOptionPane.showMessageDialog(null, "Senhor(a) " + nome + " seu saldo atual é: " + saldo_inicial + " Reais");
            }




        }
SandroSoftwares

aqui na verdade não é ou || é &&

} while ((!(senha_d.equals(senha))) && (erro < 3));
P

apresentou o mesmo problema man … ta fueda!!! vou analisar com mais precisão aqui e verificar se acho o erro (‘porra de netbeans velho’).

SandroSoftwares

aqui rodou legal…

copie o codigo q postei e cole dentro do seu main…

blz?

P

ele funcionou aqui também mais se eu digito a senha errada ele apresenta e repete o valor mesmo assim.

SandroSoftwares

infelizmente vc não fez o que eu te falei (copiar e colar o código)

é impossível aqui rodar legal e ai não…

Temos que ter duas virtudes para programar: PACIÊNCIA E HUMILDADE.

Testa ai pra vc ver…

P

MANO PQP VLW MESMO CARA o problema rao seguinte quando eu mandava o netbeans compilar ele estava compilando a classe principal e não a que eu estava criando, ai ele sempre executaa o principal e não está, vlw mesmo man agradecido de verdade. ^^

Vingdel

Então amigão, marque o tópico com [RESOLVIDO]. Lembre-se de usar a tag CODE para postar seus códigos aqui no forum.

Abraço!

SandroSoftwares

que bom!

feliz por vc!

Sandro

Criado 11 de junho de 2011
Ultima resposta 13 de jun. de 2011
Respostas 11
Participantes 3