1
resposta

Uso e lógica do for e do i

Não entendi a lógica do for, e como funciona ele com i no código.

let xCars = [800, 800, 800]
let yCars = [62, 148, 230]
let carsSpeed = [14, 15, 16.5]


function showCar1(){
  for(let i = 0; i < carImages.length; i = i + 1){
  image(carImages[i], xCars[i], yCars[i], 50, 40);
    }
}

function carMovement (){
  for (let i = 0; i < carImages.length; i = i + 1){
  xCars[i] -= carsSpeed[i];
  }
}

function goBackCar (){
  for (let i = 0; i < carImages.length; i = i + 1){
  if (xCars[i] < -64){
    xCars[i] = 800;
  }
  }
}
1 resposta

Olá, Davi, a letra "i" funciona como um contador para ajudar o programa a saber quando deve parar de repetir uma instrução.

Vamos utilizar este trecho de código para exemplificar:

function mostraCarro(){
    for   (let i = 0;    i < imagemCarros.length;    i = i + 1)   {
          image   (imagemCarros[i],    xCarros[i],    yCarros[i],    50,    40);
    }
}

Relembrando, neste exemplo:

let i = 0; ---> declaramos a variável "i" (contador) e definimos que ela receberá inicialmente o valor "0" (começará valendo 0).

i < imagemCarros.length; ---> definimos que enquanto o valor do contador (i) for menor que o tamanho do array (quantidade de elementos) da variável "imagemCarros" a função "mostraCarro" deverá ser executada. No nosso exercício, o array contém 6 elementos (a imagem de 6 carros). Assim, enquanto i < 6, as instruções contidas nessa função devem ser repetidas, certo?

i = i + 1 ---> (equivale a i++) definimos que o contador deverá ser incrementado (somado) em uma unidade cada vez que a função "mostraCarro" for executada.

Nesse caso, além de contar o número de vezes que a função será repetida, o "i" também conta a posição do elemento dentro do array que deve ser considerado naquela repetição [i].

Lembrando das variáveis que aparecem neste exemplo (arrays):

let xCarros = [600, 600, 600, 600, 600, 600];
let yCarros = [40, 96, 150, 210, 270, 318];
imagemCarros = [imagemCarro, imagemCarro2, imagemCarro3,   imagemCarro, imagemCarro2, imagemCarro3];

Agora, podemos criar uma tabela para nos ajudar a entender como acontece o incremento do contador(i), lembrando que estamos trabalhando com o laço de repetição for:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Como vemos, quando o "i" atinge o valor 6, ele torna a condição i < imagemCarros.length (= i < 6) falsa, já que passa ser IGUAL a 6, e a repetição cessa.

Espero ter contribuído para esclarecer sua dúvida. Bons estudos!