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

[Dúvida] Duvida da possivel solução

A variavel maiorValor foi definida como 0, e em todos as iterações ela permanece como 0. O correto nao seria?

if (!(maiorValor > _itens[i].Saldo)) { maiorValor = _itens[i]; }

2 respostas

Lucas,

você pegunta sobre a diferença ente escrever desta forma:

if (!(maiorValor > _itens[i].Saldo))
{
    conta = _itens[i];
}

Ou desta forma?

if (!(maiorValor > _itens[i].Saldo)) { maiorValor = _itens[i]; }

Os dois códigos são exatamente iguais, o primeiro é um pouco mais fácil de entender, principalmente para quem é iniciante.

O que eu achei estranho foi "maiorValor = 0":

public ContaCorrente MaiorSaldo()
{
    ContaCorrente conta=null;
    double maiorValor = 0;
    for (int i = 0; i < _itens.Length; i++)
    {
        if (_itens[i] != null)
        {
            if (!(maiorValor > _itens[i].Saldo))
            {
                conta = _itens[i];
            }
        }
    }

    return conta;
}

Seria melhor assim:

public ContaCorrente MaiorSaldo()
{
    ContaCorrente conta=null;

    for (int i = 0; i < _itens.Length; i++)
    {
        if (_itens[i] != null)
            if (!_itens[i].Saldo < 0))
               conta = _itens[i];
    }

    return conta;
}

[]'s,

Fabio I.

solução!

Eu adicionei outras contas, com saldos diferentes, em posições aleatorias, e quando voce executa tanto o codigo que ta na resolução do problema, quanto este que voce enviou, ele imprime sempre a ultima conta da lista, pois se você manter o IF, sempre apenas verificando o valor 0, ele apenas vai validando todas as contas.

Para resolver eu fiz assim:

public ContaCorrente MaiorSaldo()
        {

            ContaCorrente conta = null;
            var maiorValor = 0;
            for (var i = 0; i < _itens.Length; i++)
            {
                if (_itens[i] != null)
                {
                    if (!(maiorValor > _itens[i].Saldo))
                    {
                        maiorValor = (int)_itens[i].Saldo;
                        conta = _itens[i];
                    }

                }

            }

            return conta;