Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Duvida sobre a contrução do metodo de repetição (for)

Na atividade da Parte 7: Aula 3 (somando pares) a resposta correta é dada como sendo numeros.Length - 1, porém ao utilizar este metodo desse jeito não ocorreria do programa tentar somar um [null] com o numero 1? porque não existe nenhum numero ante do indice zero certo? (isso realmente quebrou minha cabeça! kkk)

5 respostas

Boa noite Marcos. Não pois utiliza para se ter o tamanho to laço ou seja o i é o incremento do laço se o numeros.Length foi igual a 10 o laço vai de 0 a numeros.Length - 1 ( ou seja 9 incrementos, e quando i for 10 sai do laço ). No for proposto do exercicio nao teria como acesar o valor menor que 0 pois ta incrementando.

Aaah então é por isso que ele não tenta pegar o valor antes de zero... na verdade o metodo do for "está sempre indo para frente"?

solução!

neste caso sim, mas o metodo for pode ser implementado de diferentes formas. vamos dividir o for em 3 partes

  1. onde você cria a variavel para controlar o laço
  2. onde voce controla o laço, a condição
  3. incremento ou decremento da variavel de controle

for ( int i = 0 ; i < condicao ; i++)

No caso so exercio o for esta indo de 0 até numero.Length - 1, se numero.Length for igual a 10 o laço entao vai de 0 a 9 por isso ele nao entraria em um valor menor que 0 pois ele esta incrementando no "i++", terceira parte do for

o for pode tanto incrementar "ir para frente" como decrementar "ir para tras" Ex: for( int i = 10 ; i < condicao ; i --)

Note que ja começo o i de 10, para pode decrementar, caso comece de 0 ele traria o valor -1 na variavel i que dependendo da condição pode te dar um erro.

Bom, para tentar resumir, o For e um laço que voce pode manipular percorrendo um lista do inicio ao fim ou do fim ao inicio, quem vai decidir isso é o programador de acordo com a necessidade no momento, no caso da sua dúvida sobre acessar posições nulla em um array, é possivel sim entrar nesse erro e tentar percorrer uma possição do array que nao existe, mas o tratamento desse erro fica a cargo do programador, voce deve garantir a implementação do seu for para que ele funcione corretamente, voce deve ter conhecimento do que ele vai percorre e tomar o cuidado para que nao acesse um indice nullo do array.

Puts eu nem tinha parado para pensar no "i--", eu tava quebrando a cabeça aqui e não tinha prestado atenção direito na condição e no incremento do for. Muito obrigado, esclareceu as coisas aqui pra mim kkkk.

Legal Marcos, fico feliz em ajudar. Tenha bons estudos!