for (int i = 0; i < numeros.Length - 1; i += 2)
^-- Por que precisa desse -1 ?
for (int i = 0; i < numeros.Length - 1; i += 2)
^-- E por que é i += 2 ?
for (int i = 0; i < numeros.Length - 1; i += 2)
^-- Por que precisa desse -1 ?
for (int i = 0; i < numeros.Length - 1; i += 2)
^-- E por que é i += 2 ?
Olá Victor, tudo bem?
numeros.Length
retorna a quantidade de registros. Se no caso tem um número ímpar, por exemplo com 9 registros, você delimita com um a menos da quantidade total, então só iria contar os 4 primeiros pares, ignorando o último para não ocorrer um erro referente ao quinto par que só teria um valor:
[1] + [2]
[3] + [4]
[5] + [6]
[7] + [8]
[9] + [não existe] este índice não existe e dará erro
Por isso que no código acima pega a quantidade de valores e tira o último.
Caso tiver um numero par, não tem problema ignorar o último valor, porque só pega o primeiro de cada par para fazer a soma. Com 8 registros ficaria assim:
[1] + [2]
[3] + [4]
[5] + [6]
[7] + [8] compila normalmente
O grande motivo do acrescimo do contador ser i += 2
é que sempre irá pegar os números ímpares que contém seus respectivos pares, pulando de 2 em 2.
Como o código irá pegar pares de valorespoderiamos colocar assim:
Primeira iteração, pegará o primeiro valor e somará com o valor seguinte (segundo valor), depois como o segundo valor já entrou na conta, ele deverá ser pulado. Segunda iteração, pegará o terceiro valor, que é o primeiro valor do segundo par e somará com o segundo valor do segundo par (terceiro e quarto valor do array). E assim por diante.
Espero ter ajudado!