1
resposta

[Projeto] Exercício Conta Bancaria - PHP: Criando sua aplicação

<?php

$titular = "Michael Knopacki";
$saldo = 1200;
$opcao = 0;
$continuar = true ;


while ($continuar == true){
  
    echo "
    ********************
    Titular:{$titular}
    Saldo atual: R$ {$saldo}

    *********************
    1. Consultar saldo atual
    2. Sacar valor
    3. Depositar valor
    4. Sair\n
    ";
    
    echo "Selecione uma opção: \n";
    $opcao = trim(fgets(STDIN));
    echo "A Opção selecionada é {$opcao} \n";
    
    if ($opcao == 1){
        echo "\n Boa tarde, Sr. {$titular}. Seu saldo é {$saldo}. \n";
    }elseif ($opcao == 2) {
        echo "Qual valor pretende sacar? \n";
        $saque = trim(fgets(STDIN));
        $saldo = $saldo - $saque;
        echo "\n Boa tarde, Sr. {$titular}. Você realizou um saque de R$ {$saque}, agora seu saldo é de R$ {$saldo}. \n";
    }elseif ($opcao == 3){
        echo "Qual valor pretende depositar? \n";
        $deposito = trim(fgets(STDIN));
        $saldo = $saldo + $deposito;
        echo "\n Boa tarde, Sr. {$titular}. Você realizou um depósito de R$ {$deposito}, agora seu saldo é de R$ {$saldo}. \n";
    }elseif ($opcao == 4){
        echo "\n Obrigado volte sempre \n";
        $continuar = false;
        break;
    }
}

?>
1 resposta

Oii Michael,

Parabéns pela implementação do desafio. Gostei muito de ver que você utilizou a estrutura while com uma variável de controle ($continuar), essa é uma lógica muito comum e eficiente para criar menus de repetição.

O seu código tá funcional e bem legível, especialmente pelo uso da interpolação de strings (o uso das chaves {$variavel}), que deixa o texto muito mais limpo do que ficar concatenando com pontos.

Tenho duas sugestões para levar seu código para o próximo nível, focando na segurança dos dados:

1. Verificação de Saldo:
No momento, na opção 2 (Saque), o sistema permite que o usuário saque um valor maior do que ele possui na conta, o que deixaria o saldo negativo. Seria interessante adicionar um if para verificar isso antes de subtrair o valor.

2. Tipagem de Dados:
Quando usamos fgets, o PHP recebe o dado como uma "string" (texto). Embora o PHP consiga fazer contas com textos numéricos, uma boa prática é converter explicitamente para número (float ou int), garantindo que não haja erros de cálculo.

Veja como ficaria essa adaptação no trecho do saque:

} elseif ($opcao == 2) {
    echo "Qual valor pretende sacar? \n";
    // convertendo para float para garantir que é um número decimal
    $saque = (float) trim(fgets(STDIN)); 

    if ($saque > $saldo) {
        echo "Saldo insuficiente para realizar essa operação.\n";
    } else {
        $saldo -= $saque; // Mesma coisa que: $saldo = $saldo - $saque;
        echo "\n Boa tarde, Sr. {$titular}. Saque de R$ {$saque} realizado. Saldo atual: R$ {$saldo}. \n";
    }
}

Essa pequena validação aproxima muito o seu exercício de um cenário real de banco. Continue praticando essas variações lógicas, você está no caminho certo.

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