Como essa linha consegue analisar o saldo e dizer se ele é o maior?
if (!(maiorValor > _itens[i].Saldo))
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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.