Como essa linha consegue analisar o saldo e dizer se ele é o maior?
if (!(maiorValor > _itens[i].Saldo))
Como essa linha consegue analisar o saldo e dizer se ele é o maior?
if (!(maiorValor > _itens[i].Saldo))
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.