Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

[Projeto] Desafio conta bancária

<?php

$saldo = 1200;
$titularDaConta = "Fulano";
$numero = 0;

echo "*******************\n" . "Titular: $titularDaConta\n" . "Saldo atual: R$ $saldo\n" . "*******************\n";

while ($numero != 4) {
    echo "1. Consultar saldo atual\n" . "2. Sacar valor\n" . "3. Depositar valor\n" . "4. Sair\n";
    $numero = (int) fgets(STDIN);

    if ($numero == 1) {
        echo "Seu saldo atual é: $saldo\n";
    } elseif ($numero == 2) {
        echo "Qual valor deseja sacar? \n";
        $valorASacar = (float) fgets(STDIN);
        while ($valorASacar <= 0) {
            echo "Digite um valor maior que zero:\n";
            $valorASacar = (float) fgets(STDIN);
        }
        if ($valorASacar > $saldo) {
            echo "Saldo insuficiente.\n";
        } else {
            $saldo -= $valorASacar;
            echo "Saque realizado com sucesso!\n";
        }
    } elseif ($numero == 3) {
        echo "Qual valor deseja depositar? \n";
        $valorADepositar = (float) fgets(STDIN);
        while ($valorADepositar <= 0) {
            echo "Digite um valor maior que zero:\n";
            $valorADepositar = (float) fgets(STDIN);
        }
        $saldo += $valorADepositar;
        echo "Depósito realizado com sucesso!\n";
    } elseif ($numero == 4) {
        echo "Até mais!\n";
    } elseif ($numero != 4) {
        echo "Opção inválida! Insira um número de 1 a 4: \n";
    }
}
1 resposta

Oi, Bianca. Tudo bem com você?

Obrigado por compartilhar sua resolução do desafio da conta bancária. Seu código atende aos requisitos propostos e, além disso, você incluiu validações para impedir saques e depósitos com valores menores ou iguais a zero, algo que vai além do que foi apresentado durante a implementação da solução. Essa preocupação torna a aplicação mais consistente e demonstra atenção ao tratamento das entradas fornecidas pela pessoa usuária.

A estrutura com while para manter o menu em execução, o uso de condicionais para tratar cada opção e a conversão dos valores lidos com fgets(STDIN) para int e float foram aplicados de forma adequada. Como dica para evoluir esse projeto, em versões futuras você pode experimentar substituir a sequência de if e elseif por um switch, tornando o código mais organizado quando houver várias opções de menu.

Pensando em uma aplicação bancária mais próxima de um cenário real, quais outras validações ou funcionalidades você adicionaria para tornar esse sistema mais completo?

Parabéns pelo desenvolvimento da atividade e por compartilhar sua solução no fórum. Continue praticando e trazendo suas implementações. O fórum permanece à disposição para acompanhar sua evolução.

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