Erro ao utilizar o Scanner

Olá galera. Estou fazendo um projeto de Conta bancária para fins didáticos e me apareceu um erro.
Ao tentar utilizar o método “abrirConta” na Main o método não válida o valor que setei na variável tipoConta. Exemplo: Setei a variável como “cc” (conta corrente) e o IF não valida com tipo == “cc”.

Esse é meu main:

import java.util.Scanner;

public class TesteDaConta {
public static void main(String[] args) {
	Conta c1 = new Conta();
	int resp = 0;
	double quantidade;
	String tipoConta;
	do {
		System.out.println(
				"Menu de opções:\n\n1-Depositar\n2-Sacar\n3-Abrir Conta\n4-Fechar Conta\n5-Status da conta\n0-Sair");

		Scanner sc = new Scanner(System.in);
		System.out.println("Qual operação deseja realizar?");
		resp = Integer.parseInt(sc.nextLine());
	

		switch (resp) {
		case 1:
			System.out.println("Digite a quantidade que deseja depositar:");
			quantidade = sc.nextDouble();
			c1.depositar(quantidade);
			break;
		case 2:
			System.out.println("Digite a quantidade que deseja sacar:");
			quantidade = sc.nextDouble();
			c1.sacar(quantidade);
			break;
		case 3:
			System.out.println("Digite o tipo de Conta: cc(Conta Corrente)/ cp(Conta Poupança):");
			c1.setTipo(sc.nextLine());
			c1.abrirConta(c1.getTipo());
			break;
		case 4:
			c1.fecharConta();
			break;
		case 5:
			c1.estadoAtual();
			break;
		case 0:
			System.out.println("Fim do programa, até logo!");
			break;
		default:
			System.out.println("Opção inválida!");
			break;
		}
	} while (resp != 0);

}
  }

E esse é meu método na classe conta:

public void abrirConta(String tipo) {
	this.status = true;
	this.tipo = tipo;

	if (this.tipo == "cc") {
		this.saldo = 50;
		System.out.println("Conta aberta com sucesso!");
	}else if (this.tipo == "cp") {
		this.saldo = 150;
		System.out.println("Conta aberta com sucesso!");
	else{
		System.out.println("Falha ao abrir a conta!");
        }
}

A resposta no console é sempre “Falha ao abrir a conta”. Alguém tem uma sugestão de como resolver este problema?

1 curtida

Boa tarde @otaviootj, você conseguiu solucionar o problema com os links que te mandei?

resp = Integer.parseInt(sc.nextLine());

Por que você converte de int para int?

Só mudar if (this.tipo == “cc”) para if (this.tipo.equals(“cc”))
Para comparar String, use equals no lugar de ==

1 curtida

Bom dia. Sim, só precisa de um equals na comparação. Obrigado!