Eu não entendi porque o valor maiordeTodos é = ao NEGATIVE_INFINITY (que seria o menor valor infinito), e o menordeTodos o contrário.
Eu não entendi porque o valor maiordeTodos é = ao NEGATIVE_INFINITY (que seria o menor valor infinito), e o menordeTodos o contrário.
Olá Marconi, tudo bem ?
É o inverso para que seja de fato capturando o valor correto, por exemplo:
Vamos supor que não esteja ao contrário:
private double maiorDeTodos = Double.POSITIVE_INFINITY
Não importa qual seja o lance dado:
O nosso maiorDeTodos
vai ser sempre ser maior, e dessa maneira o resultado do getMaiorLance
sempre vai ser o maior número double
possível, ao invés dos lances de fato
Da mesma forma se fizéssemos o menorDeTodos
como o Double.NEGATIVE_INFINITY
, teríamos o mesmo comportamento :)
Então fazemos essa inversão, dessa forma na primeira iteração, não importa o valor que o usuário colocou, por exemplo 0, com certeza ele vai ser:
maior
que o maiorDeTodos
, pois 0 > infinito negativomenor
que o menorDeTodos
, pois 0 < infinito positivoE agora sim podemos executar nosso código corretamente com as duas variáveis com o primeiro valor :)
Conseguiu Compreender? Qualquer coisa estou à disposição =D
Abraços e Bons Estudos!