Bom dia;
O código está quase lá, mas tem alguns errinhos clássicos que explicam por que “bizarramente” não funcionou como esperado. Vou apontar o que está errado, por quê, e como ajustar, sem complicar.
main está declarado errado
Em Java, o método principal precisa ser exatamente assim:
public static void main(String[] args)
No seu código está só:
static void main()
Assim o programa nem executa.
O saldo nunca é atualizado de verdade
Você cria variáveis novas (saldoAtualizado, saldoAtt), mas não altera saldoInicial.
Ou seja:
- Você soma
- Mostra o valor
- Mas o saldo original continua o mesmo
O correto é atualizar o próprio saldo.
Errado:
double saldoAtualizado = saldoInicial + novoSaldo;
Certo:
saldoInicial += novoSaldo;
Falta validação de saldo na transferência
O desafio pede que, se o valor for maior que o saldo, apareça a mensagem:
Não há saldo suficiente para fazer essa transferência.
Isso precisa de um if.
Classe deveria começar com letra maiúscula
Não quebra o código, mas é padrão Java:
public class ContaBanco
Versão corrigida (simples e alinhada ao desafio)
import java.util.Scanner;
public class ContaBanco {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
double saldo = 1844.50;
int opcao = 0;
System.out.println("***********************");
System.out.println("Dados iniciais do cliente:\n");
System.out.println("Nome: Jacqueline Oliveira");
System.out.println("Tipo conta: Corrente");
System.out.println("Saldo inicial: R$ " + saldo);
System.out.println("***********************");
while (opcao != 4) {
System.out.println("\nOperações:");
System.out.println("1- Consultar saldos");
System.out.println("2- Receber valor");
System.out.println("3- Transferir valor");
System.out.println("4- Sair");
System.out.print("Digite a opção desejada: ");
opcao = sc.nextInt();
switch (opcao) {
case 1:
System.out.println("Seu saldo é: R$ " + saldo);
break;
case 2:
System.out.print("Informe o valor a receber: ");
double valorRecebido = sc.nextDouble();
saldo += valorRecebido;
System.out.println("Saldo atualizado: R$ " + saldo);
break;
case 3:
System.out.print("Informe o valor que deseja transferir: ");
double valorTransferencia = sc.nextDouble();
if (valorTransferencia > saldo) {
System.out.println("Não há saldo suficiente para fazer essa transferência.");
} else {
saldo -= valorTransferencia;
System.out.println("Saldo atualizado: R$ " + saldo);
}
break;
case 4:
System.out.println("Saindo...");
break;
default:
System.out.println("Opção inválida!");
}
}
sc.close();
}
}
O mais importante
Você entendeu a lógica, só tropeçou em:
- atualização de variável
- assinatura do
main - validação com
if
Isso é sinal de aprendizado, não de erro grave.