Como funciona o NOT em programação
Olá Pessoal👋 Vamos entender finalmente o not!
O not as vezes dá um nó na cabeça, até de pessoas com mais experiência👴🏻.
Mas quando entende fica fácil, ou não 🥲, boa sorte 🍀
⛳️ Dica rápida: quando encontrar o !, pense em “não”. Ele inverte um valor booleano!
Boa leitura 🚀
!falseit's funny, because it'strue.
Antes de entender o Not...
Muitos problemas de programação podem ser resumidos a uma pergunta que só possui duas respostas:
A porta está aberta?
A resposta pode ser:
true→ sim, está aberta;false→ não, está fechada.
Esse tipo de valor é chamado de booleano.
Um booleano representa apenas dois estados possíveis:
let portaAberta = true;
let computadorLigado = false;
Podemos pensar em true e false como sim e não, ligado e desligado, ou permitido e bloqueado.
Booleano é um valor que representa dois estados.
Booleanos no mundo real
Booleanos aparecem o tempo todo em sistemas que usamos diariamente.
Uma aplicação pode precisar saber:
Usuário está logado? → true / false
Produto está disponível? → true / false
Pagamento foi aprovado? → true / false
Porta está aberta? → true / false
Modo escuro está ativado? → true / false
Por exemplo, podemos representar se uma conta está ativa:
let contaAtiva = true;
console.log(contaAtiva);
O resultado será true
Isso permite que outras partes do programa usem essa informação para tomar decisões.
Booleanos e condições
Os booleanos ficam ainda mais úteis quando combinados com condições.
Por exemplo:
let portaAberta = true;
if (portaAberta) {
console.log("Pode entrar.");
}
O if verifica o valor booleano.
Como portaAberta é true, o código dentro do if é executado.
Podemos pensar assim:
Um booleano pode controlar o comportamento do programa.
Como criar booleanos
Podemos declarar diretamente:
let portaAberta = true;
Mas também podemos obter um booleano a partir de uma comparação. Por exemplo:
let idade = 20;
let maiorDeIdade = idade >= 18;
console.log(maiorDeIdade);
O resultado será true
A comparação idade >= 18 produz um booleano.
Isso significa que podemos transformar uma pergunta em uma informação:
idade >= 18
↓
true
Ou:
idade >= 18
↓
false
Finalmente, o que é o NOT?
Agora imagine que temos
let portaAberta = true;
Sabemos que a porta está aberta.
Mas e se quisermos saber o contrário, sem alterar o nome da variável?
A porta não está aberta?
É aí que entra o operador NOT.
No JavaScript, usamos ! para representar NOT.
let portaAberta = true;
console.log(!portaAberta);
O resultado será false.
Isso acontece porque o ! inverte o valor booleano.
true → false
false → true
Podemos pensar no NOT como
"O contrário disso."
NOT inverte um booleano.
Um exemplo simples
Como no exemplo do vídeo, temos uma variável indicando se uma porta está aberta
let portaAberta = false;
Podemos perguntar...
console.log(!portaAberta);
O resultado será true
A variável diz
portaAberta → false
Mas o ! pergunta
NOT portaAberta → true
Ou seja
A porta não está aberta.
NOT com if
O ! é especialmente útil quando queremos executar alguma coisa caso uma condição não seja verdadeira.
Por exemplo
let portaAberta = false;
if (!portaAberta) {
console.log("A porta está fechada.");
}
Podemos ler
Se a porta não estiver aberta, mostre "A porta está fechada."
O fluxo é:
Por que não escrever portaAberta == false?
Também poderíamos escrever
let portaAberta = false;
if (portaAberta == false) {
console.log("A porta está fechada.");
}
Funciona.
Mas o ! deixa a ideia de negação mais direta:
if (!portaAberta) {
console.log("A porta está fechada.");
}
Estamos dizendo
Se não estiver aberta...
Isso fica especialmente útil quando as condições começam a ficar maiores.
NOT em situações reais
O NOT aparece em vários tipos de sistemas.
Usuário não está logado
let usuarioLogado = false;
if (!usuarioLogado) {
console.log("Faça login para continuar.");
}
A lógica é
Se o usuário não estiver logado, peça para fazer login.
Produto não está disponível
let produtoDisponivel = false;
if (!produtoDisponivel) {
console.log("Produto indisponível.");
}
Modo escuro desativado
let modoEscuro = false;
if (!modoEscuro) {
console.log("Usando tema claro.");
}
Em todos esses exemplos, temos uma variável que representa um estado e usamos o NOT para verificar o estado contrário.
O NOT também pode inverter uma comparação
O ! não precisa ser usado apenas em uma variável.
Podemos aplicá-lo ao resultado de uma comparação
let idade = 15;
if (!(idade >= 18)) {
console.log("Menor de idade.");
}
Primeiro, o programa verifica
idade >= 18
O resultado é false
Depois, o ! inverte:
!false → true
Por isso o código dentro do if é executado.
👉 Os parênteses ajudam a deixar claro que queremos inverter o resultado da comparação.
Um exemplo completo
Vamos criar uma pequena regra de acesso.
O sistema possui uma informação indicando se a pessoa está bloqueada:
let usuarioBloqueado = false;
if (!usuarioBloqueado) {
console.log("Acesso permitido.");
}
Como usuarioBloqueado é false, temos:
!false → true
Então o acesso é permitido.
Se mudarmos
let usuarioBloqueado = true;
if (!usuarioBloqueado) {
console.log("Acesso permitido.");
}
Agora
!true → false
O código dentro do if não será executado.
A lógica pode ser visualizada assim:
⛳️ Uma forma simples de lembrar
Sempre que encontrar !, pense:
Não.
Por exemplo
!portaAberta
Leia como
A porta não está aberta.
!usuarioLogado
Leia como
O usuário não está logado.
!produtoDisponivel
Leia como
O produto não está disponível.
Essa forma de pensar ajuda bastante antes de se preocupar com a sintaxe.
Teste no Laboratório
Experimente alterar os valores de usuarioLogado e portaAberta e observe como o resultado muda:
Copie o código e acesse o laboratório:
let usuarioLogado = false;
let portaAberta = true;
console.log("Usuário logado:", usuarioLogado);
console.log("Usuário não está logado:", !usuarioLogado);
console.log("Porta aberta:", portaAberta);
console.log("Porta não está aberta:", !portaAberta);

João Trintin
Programação Pode Ser Simples