5
respostas

Não entendi

Como essa linha consegue analisar o saldo e dizer se ele é o maior?

if (!(maiorValor > _itens[i].Saldo))
5 respostas

Hugo,

Como disse Sr. Jack, vamos por partes, em outras palavras, você precisa analisar cada pedacinho desta linha. Vamos fazer isto?

IF -> Significa "SE", é como, "Se isso for verdadeiro".

! -> A exclamação é a negação de tudo que vem depois. Basicamente é inverter o resultado.

maiorValor -> Variável que deve conter o m,ior valor permitido.

">" - Sinal matemático que indica o lado que está o maior valor ou deveria estar para ser verdadeiro

_itens[i].Saldo -> Dentro da array, na posição "i" pegue o valor do campo "Saldo" dentro da array.

if (!(maiorValor > _itens[i].Saldo))

Então se a variável "maiorValor for maior que o que está contido dentro da array _iotens[i].Saldo INVERTA o resultado e processe ou NÃO o que está dentro do "IF".

Se você não entendeu, avise.

[]'s,

Fabio I.

A resposta anterior já está bem detalhada, só gostaria de contribuir um pouco e afirmar que o bloco de código if (!(maiorValor > _itens[i].Saldo)), consegue analisar e dizer que o saldo é maior porque o sinal ! reverte o resultado da pergunta que está sendo feita dentro dos parênteses (maiorValor > _itens[i].Saldo) e que normalmente ela seria verdadeira se o valor armazenado em maiorValor fosse maior que _itens[i].Saldo e nesse caso o if passa a ser verdadeiro se o valor contido em maiorValor for menor. Exemplo de como poderíamos traduzir o código da sua pergunta:

if (!(9 > 11)) e dessa forma nos certificar que sempre que o primeiro valor não for maior que o segundo significa que o saldo é maior.

Olá boa tarde!

Ótimas contribuições senhores.

Boa tarde a todos. Neste ponto do curso, realmente não consegui entender como fazer o método que retorna a conta com maior saldo. Mas, avançando no curso, consegui adquirir mais conhecimento e fazer um método meu mesmo que retorna a conta com maior saldo. Fiquei bem feliz. Segue abaixo o programa. Obrigado a todos vocês pela atenção e pelas contribuições.

List<Conta_Corrente> lista_Contas = new List<Conta_Corrente>()
{
    new Conta_Corrente {Num_Agencia = 12, Num_Conta = "1234X", Saldo_Cliente = 150},
    new Conta_Corrente {Num_Agencia = 12, Num_Conta = "2345X", Saldo_Cliente = 301},
    new Conta_Corrente {Num_Agencia = 12, Num_Conta = "3456X", Saldo_Cliente = 210},
};

RetornaMaiorSaldo(lista_Contas);

void RetornaMaiorSaldo(List<Conta_Corrente> lista)
{
    lista.Sort();
    Console.WriteLine($"a conta com maior saldo é a de Número {lista[lista.Count-1].Num_Conta}");
}

public class Conta_Corrente : IComparable<Conta_Corrente>
{
    public int Num_Agencia { get; set; }
    public string Num_Conta { get; set; }
    public double Saldo_Cliente { get; set; }
    public int CompareTo(Conta_Corrente outro)
    {
        if (outro == null) return 1;
        else return this.Saldo_Cliente.CompareTo(outro.Saldo_Cliente);
    }
}

Hugo,

Ficou muito bom. Se você estiver usando a versão do ".Net 6" pode fazer enxugar um pouco o código:

static void Main()
{
    List<Conta_Corrente> lista_Contas = new()
    {
        new Conta_Corrente { Num_Agencia = 12, Num_Conta = "1234X", Saldo_Cliente = 150 },
        new Conta_Corrente { Num_Agencia = 12, Num_Conta = "2345X", Saldo_Cliente = 301 },
        new Conta_Corrente { Num_Agencia = 12, Num_Conta = "3456X", Saldo_Cliente = 210 },
    };

    RetornaMaiorSaldo(lista_Contas);
}

[]'s,

Fabio I.