Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Saldo negativo

<?php

$contasCorrentes = [
    '123.123.123-20' =>  [
        'titular' => 'André',
        'saldo' => 1000
    ],
    '484.920.938-28' => [
        'titular' => 'Marta',
        'saldo' => 4000
    ],
    '487.823.918-28' =>  [
        'titular' => 'Anderson',
        'saldo' => 300
    ]
];


$contasCorrentes['487.823.918-28']['saldo'] -= 500;
    if(500 > $contasCorrentes['487.823.918-28']['saldo']) {
        echo 'Você não pode sacar' . PHP_EOL;
    } else {
        $contasCorrentes['487.823.918-28']['saldo'] -= 500;
    };


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

Bom dia!

Por mais que eu faça essa verificação, o usuário Anderson continua conseguindo sacar e ficar com o saldo negativo, o que tem de errado?

2 respostas
solução!

Olá André,

Acontece que você está fazendo o saque antes de verificar se o saque pode ser feito. Você precisa apenas remover essa linha que tem antes do if:

$contasCorrentes['487.823.918-28']['saldo'] -= 500;

A ordem do código é essa:

$contasCorrentes = [
    // Criação das contas
    // Escondi essa parte para diminuir o código
];

// Verifica se tem limite para sacar
if (500 > $contasCorrentes['487.823.918-28']['saldo']) {
    // Se não tem limite mostra apenas a mensagem
    echo 'Você não pode sacar' . PHP_EOL;
} else {
    // Se tiver limite faz o saque
    $contasCorrentes['487.823.918-28']['saldo'] -= 500;
};

// Resto do código

Espero ter ajudado, qualquer dúvida é só falar!

Obrigado! Ajudou bastante