Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Dúvida sobre True false

var mostraBrasil = true;

function trocaBandeira() {

    if(mostraBrasil == true) {
        desenhaBandeiraBrasil();
        mostraBrasil = false;
    } else {
        desenhaBandeiraAlemanha();
        mostraBrasil = true;
    }
}

Este código foi dado pelo professor, porém estrou com dificuldade para entender este trecho do código. Por exemplo, porque brasil começa como True e depois no mesmo bloco vai pra false, e depois volta pra true?

Essa atividade precisa fazer a bandeira do brasil aparecer e sumir a cada 3segundos.

Se puderem me ajudar, agradeço.

Mais para frente é usado o seguinte código

    function trocaBandeira(){

        if(mostraBrasil){
            desenhaBandeiraBrasil();
        }else{
            desenhaBandeiraAlemanha();
        }
        mostraBrasil = !mostraBrasil;

Entendo pela função que seria Se "mostraBrasil = verdadeiro" então desenhaBandeiraBrasil() se não "desenhaBandeiraAlemanha"() e até ai beleza, mas porque inverter o valor de verdadeiro pra falso com a função Not ( ! ) ?

1 resposta
solução

Boa noite, André! Como vai?

Este código foi dado pelo professor, porém estrou com dificuldade para entender este trecho do código. Por exemplo, porque brasil começa como True e depois no mesmo bloco vai pra false, e depois volta pra true?

O primeiro ponto a ser observado é que não são os mesmos blocos como vc falou. Os blocos são diferentes!

function trocaBandeira() {

    if(mostraBrasil == true) {
        desenhaBandeiraBrasil();
        mostraBrasil = false;
    } else {
        desenhaBandeiraAlemanha();
        mostraBrasil = true;
    }
}

Veja que o if verifica se a variável mostraBrasil tem valor true. Em caso positivo, executa a função desenhaBandeiraBrasil() e em seguida troca o valor dessa mesma variável para false. De modo que na próxima vez que a função trocaBandeira() for executada, o else será ativado, a bandeira da Alemanha seja desenhada e, por fim, a variável mostraBrasil volte para o valor true.

Já o segundo trecho de código que vc postou é somente uma simplificação do primeiro! Veja que tanto no bloco do if quanto no bloco do else a variável mostraBrasil sempre ganha um valor inverso ao que tinha anteriormente. Por isso, o mestre Flávio trocou as linhas mostraBrasil = false de dentro do if e mostraBrasil = true de dentro do else para mostraBrasil = !mostraBrasil colocando-a fora tando do if quanto do else.

Pegou a idea? Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!