Erro, Estranho

2 respostas
B

Pessoal, ta dando um erro que quando eu ponho o usuário correto ele pensa que está errado, e quando ponho errado ele pensa que está certo. O mesmo funciona com a senha, e está tudo programado corretamente.

Usuário: a
Senha: a

import java.util.Scanner;

public class Main {

	

	class Conta {
		String cliente, usuario, senha;
		boolean ativa;
		double saldo, limite;
	}
	
	
	
	public static void main (String[] args) {
	
		Scanner input = new Scanner( System.in );
		Main main = new Main();
		Conta conta = main.new Conta();
		
		conta.usuario = "a";
		conta.senha = "a";
		conta.cliente = "Bruno Alano";
		conta.ativa = true;
		conta.saldo = 350;
		conta.limite = 750;
		
		System.out.printf ("Usuario: ");
		String usuario = input.next();
		
		System.out.printf ("Senha: ");
		String senha = input.next();
		
		/* System.out.println (usuario);
		System.out.println (conta.usuario); */
		
		if (usuario != conta.usuario) {
			System.out.println ("Erro, ultilize o usuario correto");
			System.exit(0);
		} else {
			System.out.println ("Usuario Correto!");
		}
		
		if (senha != conta.senha) {
			System.out.println ("Erro, ultilize a senha correta");
			System.exit(0);
		}
	}
}

Grato, Bruno Alano.

2 Respostas

Tchello

Você não pode usar os operadores “==” e “!=” para objetos.
Esses operadores comparam “endereço de memória” e não o conteúdo dos objetos.
O correto é utilizar o método equals, ficando algo como:

if  (!senha.equals(conta.senha)) {  //repare na exclamação no começo, pra indicar diferença e não igualdade
             System.out.println ("Erro, ultilize a senha correta");  
             System.exit(0);  
         }

Tambem tem o equalsIgnoreCase, que ignora se há caracteres em caixa-alta e caixa-baixa.

jeroqueiroz

Faça a verificação desta forma pra ver se resolve.

if (conta.usuario.equals(usuario)) {  
       System.out.println ("Usuario Correto!");   
} else {  
       System.out.println ("Erro, ultilize o usuario correto");  
       System.exit(0);  
}
Criado 5 de fevereiro de 2010
Ultima resposta 5 de fev. de 2010
Respostas 2
Participantes 3