Entendendo o condicional if na prática
O comando if é uma estrutura de controle de fluxo que existe praticamente em todas as linguagens de programação modernas. A ideia central é simples: execute um bloco de código apenas se uma determinada condição for verdadeira. Parece óbvio, mas a forma como você escreve e organiza essas condições faz toda a diferença quando o sistema cresce. Na maior parte das linguagens, a sintaxe segue um padrão reconhecível: if seguida de uma expressão entre parênteses ou colchetes, e um bloco de código indentado logo abaixo. Python usa dois pontos e identação. C, Java e JavaScript usam chaves. O princípio é o mesmo em qualquer uma delas.
o que significa if em português
Em tradução livre, if significa "se". É isso mesmo. Quando você vê if (temperatura > 100), está lendo "se a temperatura for maior que 100". A parte mais complicada não é traduzir a palavra, é pensar corretamente nas condições que o programa precisa avaliar. Uma coisa que muita gente aprende errado desde o início: o if só testa a condição uma vez, no momento da execução. Ele não fica "observando" variáveis ao fundo. Se o valor muda depois que o if já decidiu, o bloco não vai se atualizar automaticamente. Você precisa estruturar o fluxo para que isso não seja um problema.
Já me deparei com um bug bem específico em um sistema de disparo de alertas onde eu deixei de considerar que variáveis booleanas podem ser alteradas por processos concorrentes. Tinha um if verificando se um status era "pendente", mas enquanto o código executava, um thread vizinho já tinha mudado esse status para "concluído". O resultado foi um duplo processamento que gerou cobranças redundantes em produção. A solução foi usar uma transação atômica para garantir que a leitura e a atualização do status acontecessem como uma única operação indivisível, sem janela de corrida. Outro detalhe que não ensinam direitinho: a diferença entre = e ==. Em várias linguagens baseadas em C, usar um igual só dentro de um if é um erro silencioso que compila sem aviso e atribui um valor em vez de comparar. Em Python, o interpretador até te avisa com SyntaxError, mas em linguagens mais permissivas esse bug pode ficar escondido por semanas.
Quanto à performance, ifs aninhados demais costumam indicar que a lógica precisa ser reestruturada, não que o hardware vai sofrer. Cada nível extra de aninhamento aumenta exponencialmente os caminhos possíveis que um testador precisa verificar. O que geralmente resolve é substituir encadeamentos profundos por guards no início da função ou por pattern matching, quando a linguagem permite. Para quem está começando, o exercício mais útil não é escrever ifs cada vez mais complexos, mas aprender a ler conditions compostas com operadores lógicos claros. AND, OR e NOT (ou &&, ||, ! dependendo da linguagem) permitem combinar condições, mas a precedência deles varia entre linguagens e isso gera armadilhas. Sempre use parênteses para deixar a intenção explícita, mesmo quando a tabela de precedência diz que não precisaria.
Existe ainda o caso do else if (ou elif em Python), que é basicamente uma sequência de verificações encadeadas. A linguagem avalia cada uma na ordem e para na primeira que bater. Isso significa que a ordem dos branches importa funcionalmente, não apenas esteticamente. Colocar a condição mais restritiva primeiro pode evitar avaliações desnecessárias e deixar o código mais legível, além de ter um impacto mensurável em loops que rodam milhões de vezes. Se você quer testar na prática, acesse qualquer playground online de Python, JavaScript ou C e brinque com condições simples antes de avançar para cases mais elaborados. Não precisa instalar nada, só copiar, modificar e rodar para ver o que acontece.