function trocaBandeiras(){
for (let i = 0; bandeira < bandeira.length; i++) {
bandeira[i]
if(i>2){
i = 0;
}
}
return bandeira[i]
}
setInterval(trocaBandeiras, 3000);
function trocaBandeiras(){
for (let i = 0; bandeira < bandeira.length; i++) {
bandeira[i]
if(i>2){
i = 0;
}
}
return bandeira[i]
}
setInterval(trocaBandeiras, 3000);
Oi, Pedro, tudo bem?
Ao usar o for
para criar um loop de repetição, você esqueceu de definir uma variável bandeira contendo uma lista com as duas funções que desenham tanto a bandeira da Alemanha quanto a bandeira do Brasil:
var bandeira = [desenhaBandeiraBrasil(), desenhaBandeiraAlemanha()]
Outro ponto importante é que dentro do for
o elemento i vai ser percorrido a lista criada pela variável bandeira
, de modo que ficaria assim:
i < bandeira.length;
Por fim, esse código realiza uma tarefa e ao concluir exibe sempre a mesma resposta, apenas uma das bandeiras, sem realmente realizar a alternância entre elas, como solicitado na atividade. Portanto, para conseguir realizar essa alternância das bandeiras seria interessante utilizar estruturas condicionais sem a presença de um laço de repetição. Ficaria assim:
var mostraBrasil = true;
function trocaBandeira() {
if(mostraBrasil == true) {
desenhaBandeiraBrasil();
mostraBrasil = false;
} else {
desenhaBandeiraAlemanha();
mostraBrasil = true;
}
}
setInterval(trocaBandeira, 3000);
Nessa função:
var mostraBrasil = true;
Declara uma variável chamada mostraBrasil
e a inicializa com o valor true. Essa variável será usada para controlar qual bandeira deve ser exibida.
if(mostraBrasil == true) {
desenhaBandeiraBrasil();
mostraBrasil = false;
}
Verifica se a variável mostraBrasil
é igual a true. Se for verdadeira, significa que a última bandeira exibida foi a do Brasil. Se a condição acima for verdadeira, chama a função desenhaBandeiraBrasil()
, que contém o código para desenhar a bandeira do Brasil. Em seguida, define mostraBrasil
como false, indicando que a próxima bandeira a ser exibida será a da Alemanha.
else {
desenhaBandeiraAlemanha();
mostraBrasil = true;
}
Se a condição anterior for falsa, significa que a última bandeira exibida foi a da Alemanha. Nesse caso, chama a função desenhaBandeiraAlemanha()
, que provavelmente contém o código para desenhar a bandeira da Alemanha. Em seguida, define mostraBrasil
como true, indicando que a próxima bandeira a ser exibida será a do Brasil.
setInterval(trocaBandeira, 3000);
Define um intervalo de tempo usando setInterval
para chamar a função trocaBandeira
a cada 3000 milissegundos (3 segundos). Isso resulta na troca periódica entre as bandeiras do Brasil e da Alemanha.
Espero ter ajudado. Caso tenha dúvidas, conte com o fórum. Abraços!