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

Não entendi a lógica de funcionamento da função mudaCor

Preciso de uma ajuda para entender o funcionamento da função mudaCor.

Eu entendi que ela vai adicionar 1 no valor de indiceCorAtual toda vez que for executada com o click do botão direito, porém no meu entendimento o indiceCorAtual nunca deveria chegar em 2 do jeito que está escrito:

function mudaCor() {

        indiceCorAtual++;

        if(indiceCorAtual >= cores.length){

            indiceCorAtual = 0;
        }
        console.log(indiceCorAtual);

        return false; 
    }

No meu entendimento, toda vez que eu clicar com o botão direito, o programa tem que executar toda a função. Ou seja, até o if. Então como é possível ele redefinir o valor de indiceCorAtual para 2, sendo que existe uma condicionante dentro da função dizendo que, quando indiceCorAtual for maior ou igual ao tamanho do array cores, ele deve ser redefinido para 0?

1 resposta
solução!

Olá Wesley, tudo bem?

O seu pensamento está certo, mas o condicional será válido apenas uma vez, veja:

Vamos supor que abrimos o navegador, teremos:

indiceCorAtual = 0;
cores = [ 'blue', 'red', 'green'];
cores.length = 3

Por padrão começamos com cores[0] que equivale ao azul

  • 1º Clique com botão direito
indiceCorAtual++
indiceCorAtual = 1

No condicional teremos:

indiceCorAtual >= cores.length
1 >= 3
---> False

Então não iremos zerar, e teremos cores[1] na hora de desenhar

  • 2º Clique com botão direito

Teremos a mesma coisa 2>=3, e cores[2] será o padrão agora

  • 3º Clique com o botão direito

Agora sim, incrementamos indiceCorAtual, que chega ao valor 3 e na hora de fazer a verificação teremos true

indiceCorAtual >= cores.length
3 >= 3
---> Verdadeiro

E jogaremos o indiceCorAtual para 0, voltando a ser azul, e o fluxo se repete :)

Consegui Compreender?

Abraços e Bons Estudos!