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" );
}
}
Novato em programação, problema com laços e estruturas de decisão RESOLVIDO
11 Respostas
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++;
}
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.
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");
}
}
aqui na verdade não é ou || é &&
} while ((!(senha_d.equals(senha))) && (erro < 3));
apresentou o mesmo problema man … ta fueda!!! vou analisar com mais precisão aqui e verificar se acho o erro (‘porra de netbeans velho’).
aqui rodou legal…
copie o codigo q postei e cole dentro do seu main…
blz?
ele funcionou aqui também mais se eu digito a senha errada ele apresenta e repete o valor mesmo assim.
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…
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. ^^
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!
que bom!
feliz por vc!
Sandro