2
respostas

saldo negativo

alguém pode me ajudar aqui :/ estou tentando entender pq o saldo continua negativo, mas não consigo encontrar onde esta o erro. Segue as imgs abaixo:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade Insira aqui a descrição dessa imagem para ajudar na acessibilidade

<?php

$contasCorrentes = [
    '123.123.321.10' => [
        'titular' => 'Fernando',
        'saldo' => 15000
    ],

    '456.654.564-10' => [
        'titular' => 'Pedro',
        'saldo' => 10000
    ],

    '342.432.543.11' => [
        'titular' => 'Joao',
        'saldo' => 300
    ]
];

$contasCorrentes ['342.432.543.11']['saldo'] -= 500;
    if(500 >= $contasCorrentes ['342.432.543.11']["saldo"]){
        echo "Voce nao pode efetuar o saque..." . PHP_EOL;
    } else{
        $contasCorrentes ['342.432.543.11']["saldo"] -= 500;
    }

foreach ($contasCorrentes as $cpf => $contas){
    echo $cpf . " " . $contas ['titular'] . " " . $contas ['saldo'] . PHP_EOL;
}
2 respostas

bom... consegui arrumar usando as functions sacar e depositar. o valor nao fica mais negativo.

<?php

function sacar($contas, $valorSacar){
    if($valorSacar > $contas['saldo']){
        exibeMensagem('Voce nao tem saldo disponivel...');
    } else {
        $contas['saldo'] -= $valorSacar;
    }
    return $contas;
}

function depositar($contas, $valorDepositar){
    if($valorDepositar > 0){
        $contas['saldo'] += $valorDepositar;
    } else {
        exibeMensagem("Ação invalida...");
    }
    return $contas;
}

function exibeMensagem($mensagem){
    echo $mensagem . PHP_EOL;
}

$contasCorrentes = [
    '123.123.321.10' => [
        'titular' => 'Fernando',
        'saldo' => 15000
    ],

    '456.654.564-10' => [
        'titular' => 'Pedro',
        'saldo' => 10000
    ],

    '342.432.543.11' => [
        'titular' => 'Joao',
        'saldo' => 300
    ]
];

$contasCorrentes['342.432.543.11'] = depositar($contasCorrentes['342.432.543.11'], 100);

foreach ($contasCorrentes as $cpf => $contas){
    exibeMensagem($cpf . " " . $contas['titular'] . " " . $contas['saldo']);
}

Fernando, esta linha do código está subtraindo 500 do valor do saldo

$contasCorrentes ['342.432.543.11']['saldo'] -= 500;

E também está sendo executada antes do if, ou seja, primeiro ele está deduzindo 500 do saldo e depois realizando a verificação. Basta apagar a linha e o código irá funcionar.

Claro, a melhor solução é a implementação da função de sacar como você mesmo já implementou.