Olá, assim como na aula do método Remove, não entendi o motivo de colocar o -1 na condição do for. Podem explicar por favor?
Olá, assim como na aula do método Remove, não entendi o motivo de colocar o -1 na condição do for. Podem explicar por favor?
Olá Santi, tudo certo?
Esse -1
é necessário, porque o contador sobre de 2 em 2 e não pode chegar no último elemento se for ímpar e não faz diferença em não chegar no último elemento se for par.
Se o array for par (com 4 elementos igual ao exercício), serão verificados os elementos 1 e 3, então o contador não chegará no quarto elemento, e esse elemento acaba se tornando "irrelevante" para o loop, por isso que o -1
pode ser aplicado.
Se o array for ímpar (novamente, com 5 elementos igual ao exercício), será feita a verificação da mesma maneira nos elementos 1, 3 e 5, mas quando chegar no quinto elemento, terá um problema na linha int segundoNumero = numeros[i+1];
, pois o quinto elemento entrará na variável primeiroNumero
, mas na hora de adicionar um valor na variável segundoNumero
, não será possível, porque não tem mais elementos no array e é esperado um sexto elemento, então estourará a exceção System.IndexOutOfRangeException
.
Espero ter ajudado!