Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Negative and Positive INFINITY

Eu não entendi porque o valor maiordeTodos é = ao NEGATIVE_INFINITY (que seria o menor valor infinito), e o menordeTodos o contrário.

1 resposta
solução!

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:

  • 10000000000000
  • 999999999999999

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 negativo
  • menor que o menorDeTodos, pois 0 < infinito positivo

E 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!