1
resposta

Desafio Final: Resolvido

Estou aberto para possíveis correções sobre minha linha de raciocínio e/ou correções.

import java.util.Scanner;

public class DesafioMain {

    static void main(String[] args) {
        Scanner leitura = new Scanner(System.in);

        int opcaoEscolhida = 0;
        double saldo = 2500;
        double valorReceber = 0;
        double valorParaTransferir = 0;

            System.out.println("*********************************************");
            System.out.println("Dados iniciais do cliente:\n");
            System.out.println("Nome:              Kauan Brandão de Oliveira");
            System.out.println("Tipo de conta:     Corrente");
            System.out.println("Saldo inicial:     R$2500,00");
            System.out.println("**********************************************");

        while (opcaoEscolhida < 5 || opcaoEscolhida > 1) {
            System.out.println("Operações\n");
            System.out.println("1- Consultar saldos");
            System.out.println("2- Receber valor");
            System.out.println("3- Transferir valor");
            System.out.println("4- Sair\n");
            System.out.println("Digite a opção desejada:");
            opcaoEscolhida = leitura.nextInt();

            if (opcaoEscolhida == 1) {
                System.out.println("O saldo atual é R$" +saldo+ "\n");
            } if (opcaoEscolhida == 2) {
                System.out.println("Informe o valor a receber:");
                valorReceber = leitura.nextDouble();
                saldo += valorReceber;
                System.out.println("Saldo atualizado R$" + saldo + "\n");
            } if (opcaoEscolhida == 3) {
                System.out.println("Informe o valor que deseja transferir:");
                valorParaTransferir = leitura.nextDouble();
                saldo -= valorParaTransferir;
                System.out.println("Saldo atualizado R$" + saldo + "\n");
                if (valorParaTransferir > saldo) {
                    System.out.println("Não há saldo suficiente para fazer essa transferência!!!");
                }
            } if (opcaoEscolhida == 4) {
                System.out.println("FIM DO PROGRAMA!!!");
            break;
            } if (opcaoEscolhida > 4 || opcaoEscolhida < 1) {
                System.out.println("Opção inválida!!!\n");
            }
        }
    }
}
1 resposta

Oi, Kauan! Como vai?
Agradeço por compartilhar seu código com a comunidade Alura.

Gostei de como você estruturou o menu com Scanner e foi atualizando o saldo conforme a opção escolhida. Um ponto importante: na transferência, vale validar antes de subtrair (no seu fluxo, você subtrai e só depois compara), assim você evita saldo negativo e deixa a regra mais clara.

Uma dica interessante para o futuro é usar else if para não checar vários if seguidos e validar a transferência antes de atualizar o saldo, deixando o fluxo mais legível. Veja este exemplo:


double valor = leitura.nextDouble();

if (valor <= saldo) {
  saldo = saldo - valor;
  System.out.println("Saldo atualizado R$" + saldo);
} else {
  System.out.println("Nao ha saldo suficiente.");
}

Esse trecho lê um valor e só desconta do saldo quando houver saldo suficiente; caso contrário, mostra uma mensagem.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!