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

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

<?php

    $dadosBancario = [
        "titular" => "Patrick Beltrão",
        "saldo"   => 1000
    ];

    $title = "
            ------------------------------------------------\n
                Titular: " . $dadosBancario['titular'] . "\n
            ------------------------------------------------\n

            1. Consultar Saldo\n
            2. Sacar Valor\n
            3. Depositar Valor\n
            4. Sair\n
    ";


    while (true) {

        echo $title;
        echo "\nQual operação você deseja realizar ?";
        $input1 = fgets(STDIN);

        switch ($input1) {
            case 1:
                echo "\nProcessando";
                for ($i = 0; $i <= 2; $i++) {
                    sleep(1); 
                    echo ".";
                }

                echo "\nO Saldo atual é de: R$" .  $dadosBancario["saldo"] . ",00\n";
                sleep(1);
                break;

            case 2:
                echo "\nQuanto você deseja sacar ?";

                $input2 = fgets(STDIN);

                if ($input2 > $dadosBancario["saldo"]) {

                    echo "\nProcessando";
                    for ($i = 0; $i <= 3; $i++) {
                        sleep(1); 
                        echo ".";
                    }

                    echo "\nSaldo insuficiente!!!\n";

                    echo "\nDeseja realizar outra operação ?\n";
                    echo "1. Sim\n";
                    echo "2. Não\n";
                    $input5 = fgets(STDIN);

                    if ($input5 == "1") {
                        echo "\nProcessando";
                        for ($i = 0; $i <= 2; $i++) {
                            sleep(1); 
                            echo ".";
                        }
                        break;
                    } else {
                        echo "\nDesligando!";
                        break;
                    }
                    sleep(1);

                } else {

                    $dadosBancario["saldo"] -= $input2;
                    
                    echo "\nProcessando";
                    for ($i = 0; $i <= 5; $i++) {
                        sleep(1); 
                        echo ".";
                    }

                    echo "\nSeu novo Saldo é de: " . $dadosBancario["saldo"] . ",00\n";

                    echo "\nDeseja realizar outra operação ?\n";
                    echo "1. Sim\n";
                    echo "2. Não\n";
                    $input3 = fgets(STDIN);

                    if ($input3 == "1") {
                        echo "\nProcessando";
                        for ($i = 0; $i <= 5; $i++) {
                            sleep(1); 
                            echo ".";
                        }
                        break;
                    } else {
                        echo "\nDesligando!";
                        break;
                    }
                }

            case 3:   
                echo "\nQuanto você deseja depositar ?";
                $input4 = fgets(STDIN);

                $dadosBancario["saldo"] += $input4;
                sleep(1);
                
                echo "\nProcessando";
                for ($i = 0; $i <= 5; $i++) {
                    sleep(1); 
                    echo ".";
                }

                echo "\nSeu novo Saldo é de: " . $dadosBancario["saldo"] . ",00\n";
                sleep(1);
                break;
            case 4:   
                echo "\nDesligando!";
                sleep(1);
                break;

            default:
                 
                echo "\nOpção invalida!!!";
                sleep(1);
            
                break;
        }
           
    }
1 resposta
solução!

Muito bom, Patrick. Só um problema: o "sair" não funciona.

Seu loop while é o que chamamos de um loop infinito sem condição de saída.

Uma das alternativas para sair do loop é realizar o break 2, que ao invés de fazer o break do case no switch, faz o break (sai) do while.

Uma opção que eu prefiro é, ao invés de ter um while(true), ter um do ... while ($opcao != 4)