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

Como poderia imprimir uma mensagem no Método Sacar e Transferir?

Boa Tarde Devs Tudo blz? Estou com a seguinte Dúvida nas Aulas de Métodos, quando o Professor faz a regra para poder sacar e transferir, queria exibir uma mensagem na tela caso o valor falso("Vc não tem saldo") e caso verdadeiro("Saque efetuado com sucesso"). tentei alterar o metodo mas ñ consegui.

public bool Sacar(double valor)
    {
        if(this.saldo < valor)
        {

            return false;
        }
        else
        {
            this.saldo -= valor;
            return true;

        }
}

...

public bool Transferir(double valor, ContaCorrente contaDestino)
    {
        if(this.saldo < valor)
        {            
            return false;
        }
        else
        {
            this.saldo -= valor;
            contaDestino.Depositar(valor);
            return true;
        }
    }

Outra dúvida é que no final do video nesses mesmo codigo acima o professor tira o Else e as { } e o bloco continua funcionando, mas ja vi em outros video aulas que o If/else so executa o que esta dentro da {} e quando não tem as chaves a condição executa apenas a primeira linha abaixo, mas pq nesse caso executou todo o bloco?

3 respostas

Boa tarde Elton!

Bom voce pode fazer isso de diversas formas, pode por exemplo inserir a mensagem diretamente no metodo ou após receber o retorno do mesmo. Exemplo:

public bool Sacar(double valor)
    {
        if(this.saldo < valor)
        {
            // printf nao possui saldo suficiente
            return false;
        }
        else
        {
            this.saldo -= valor;
            //print saque realizado
            return true;

        }
}

//outra forma e 
//...corpo do codigo
// chamada do metodo
bool retorno = Sacar(50);

if(retorno)
{
//printf saque realizado
}
else
{
//print saldo insuficiente
}

Sobre a segunda duvida, o else se torna desnecessário pois o if possui um return ou seja, sempre que cair no if ele ira retornar o valor assim nao executa o else, e caso nao entre na condição continua executando o codigo. um pouco mais a frente do curso voce vera uma explicação melhor sobre o assunto, mas ao se usar um return voce esta dizendo que nao é para executar mais linhas de codigo do metodo assim o que vem apos o return é descartado. por se ter ele no if ele pode ou nao se executado como no caso do exemplo. E para o caso dele nao ser executado e necessario que tenha o outro return .

solução!

Boa tarde Elton!

Você pode realizar de uma maneira mais simples, apenas trocando o tipo do public de bool para string como está abaixo:

public string Sacar(double valor) { if(this.saldo < valor) {

        return  "Vc não tem saldo";
    }
    else
    {
        this.saldo -= valor;
        return "Saque efetuado com sucesso";

    }

}

Espero ter ajudado!!!!

Obrigado, vlw.