Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Resolução Desafio final

O meu ficou diferente do professor porque fiz só antes..
Tenho uma duvida em questao da opção 3
queria por saque > saldo utilizando if com o "sout" escrito " Saldo insuficiente para efetuar saque".
só que eu fiz isso mas a operação nao parava, por exemplo tenho 10000 e quis sacar 11000. em vez de nao fazer a operação e so informar que o saque era indisponivel, ele colocava o saldo negativo de -1000 e " Saldo insuficiente para efetuar saque". Queria saber como fazer para nao ter operação nesse if.
ai no entanto eu tirei e fiz do jeito que deu certo para mim. Espero o retorno para tirar a duvida. obg

import java.util.Scanner;


public class contaBancaria {
    public static void main(String[] args) {
        int opcao = 0;
        double saldo = 10000;
        Scanner leitor = new Scanner(System.in);
        while (opcao != 4) {


            System.out.println("--------------------------------------");
            System.out.println("\n Nome: Leonardo Santos Carvalho");
            System.out.println(" Conta: Corrente");
            System.out.println(" Saldo: " + saldo);
            System.out.println("--------------------------------------");


            System.out.println("Menu: ");
            System.out.println("1. Saldo");
            System.out.println("2. Depositar");
            System.out.println("3. Sacar");
            System.out.println("4. Encerrar");
            opcao = leitor.nextInt();

            if (opcao == 1) {
                System.out.println("Seu saldo é de 10000");

                System.out.println("Qual opção você deseja:");
                System.out.println("1. Saldo");
                System.out.println("2. Depositar");
                System.out.println("3. Sacar");

            } else if (opcao == 2) {
                System.out.println("Digite o valor do depósito:");
                double depositar = leitor.nextInt();
                System.out.println("Você depositou: " + depositar);
                System.out.println("------------------------------");
                saldo = saldo + depositar;
                System.out.println("Seu saldo agora é de : " + saldo);
                System.out.println("-------------------------------");

            } else if (opcao == 3) {
                System.out.println("Digite o valor do saque:");
                double saque = leitor.nextInt();
                System.out.println("Você sacou: " + saque);
                System.out.println("------------------------------");
                saldo = saldo - saque;
                System.out.println("Seu saldo agora é de: " + saldo);
                System.out.println("------------------------------");


            } else if (opcao == 4) {

                System.out.println("Encerrando atendimento, até mais!!");
            }


            else {
                System.out.println("opção invalida!");
            }


        }

        leitor.close();

    }



}
1 resposta
solução!

Oi, Leonardo! Como vai?

Sua lógica do menu e das operações está funcionando bem. O ponto interessante é que, na opção de saque, o valor é subtraído do saldo antes de verificar se existe dinheiro suficiente, por isso o saldo fica negativo. A solução é usar um if para verificar se o valor do saque é maior que o saldo antes de realizar a operação.

Uma dica interessante para o futuro é usar uma validacao antes da operacao, garantindo que o saque so aconteca quando houver saldo suficiente. Veja este exemplo:


if (saque > saldo) {
    System.out.println("Saldo insuficiente para efetuar saque");
} else {
    saldo = saldo - saque;
    System.out.println("Saque realizado com sucesso");
    System.out.println("Saldo atual: " + saldo);
}

Nesse codigo, primeiro acontece a verificacao saque > saldo. Se for verdadeiro, o programa apenas mostra a mensagem de saldo insuficiente. Caso contrario, o saque e realizado normalmente e o saldo e atualizado.

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