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

[dúvida] operador not!

Eu não consegui resolver o exercício. Fiquei o tempo todo pensando em como testar 'false' para a minha variável fazer a troca das bandeiras. Na resposta do exercício o instrutor mostra um novo operador, o not, representado pelo '!'.

No trecho do código

var mostraBrasil = false;

function trocaBandeira() {

    if(mostraBrasil) {  //false
        desenhaBandeiraBrasil();   //executa
    } else {   //então, quando true
        desenhaBandeiraAlemanha();   //executa
    }
    mostraBrasil = !mostraBrasil;   //false vira true - true vira false
}

Teria o mesmo efeito eu testar true, atribuindo true para mostraBrasil?

var mostraBrasil = false;

function trocaBandeira() {

    if(mostraBrasil) {   //false
        desenhaBandeiraBrasil();   //executa
    } else {   //então, quando true
        desenhaBandeiraAlemanha();   //executa
    }
    mostraBrasil = true //assim
}
2 respostas

Olá Fernando, se eu entendi bem a sua duvida é sobre operadores no JavaScript, eu vou deixar alguns links abaixo que ajudaram você a entender como eles funcionam.

Como utilizar operadores de comparação em Javascript

Operadores (Parte1)

Operadores (Parte 2)

solução!

Oi, Fernando

Primeiro o bloco do "if" é para quando é "true"

if (mostraBrasil) {   
    // quando é true
}

Não funciona se atribuir mostraBrasil = true, pois só iria trocar a bandeira uma vez

"motraBrasil" ficaria sempre "true" depois da primeira troca

Você poderia usar assim, mas a solução do Instrutor é melhor


function trocaBandeira() {

    if (mostraBrasil) {   // quando a condição é verdadeira (true)
        desenhaBandeiraBrasil();   //executa
        mostraBrasil = false // troca para false
    } else {   // se não passou nas condições acima
        desenhaBandeiraAlemanha();   //executa
        mostraBrasil = true // troca para true
    }

}