Estruturas condicionais
Produzido por Gustavo BarbosaTeoria
Usando o if
Cara, imagina você chegando de manhã na faculdade, boladão e cheio de sono. Pra qual sala você vai?! Bom, você provavelmente respondeu que depende do dia da semana. A gente tem diferentes aulas em diferentes dias, então precisamos saber o dia da semana pra saber qual aula temos que assistir. A verdade é que a gente vive tendo que tomar decisões, mesmo que de forma inconsciente.
E pra gente tomar decisões, precisamos verificar nossas condições (nesse caso, o dia da semana).
Da mesma forma, nosso programa não precisa ter sempre o mesmo comportamento, mas pode executar códigos diferentes dependendo de alguma condição. Pra fazer isso, a gente usa estruturas condicionais nas linguagens de programação, usando a palavra-chave “if”.
Calma, vou te contar mais sobre a estrutura. A condição tem que ser uma expressão relacional (valor booleano). O “:” indicam que o bloco de código seguinte se refere a essa condição. Além disso, repara que eu falei “bloco de código“. Estava me referindo a todos os comandos seguintes que de mesma indentação, ou seja, mesmo alinhamento. Vamos aprender com exemplos!
Ao executar esse código, a função print() vai ser executada e o texto "1 realmente é igual a 1 ksks" vai aparecer no terminal. O bloco de código referente ao if nesse caso só teve uma linha, a do print. Antes de escrever a função “print()” ali eu cliquei na tecla TAB pra dar o espaçamento necessário, ok?!
Obs: a tecla TAB é representada no teclado por duas setinhas em sentidos opostos, logo abaixo da tecla de aspas.
Mas vou te explicar o que aconteceu aqui. A expressão de comparação “1==1” foi resolvida e teve como resposta o valor True, um booleano que significa verdadeiro (1 realmente é igual a 1, né?! haha). Quando a expressão é verdadeira, o bloco indentado é executado, mas se for falsa, não é executado.
Ao executar esse código, não acontece NADA! Isso porque 5 não é igual a 4, então o print() não vai ser executado, beleza?! Se liga nesse exemplo aqui:
Nesse caso, a gente pediu a idade do usuário e guardou dentro da variável “idade”. Se a idade digitada for menor que 18, o primeiro print vai ser executado. Mas repara que o segundo print não tá com a mesma indentação do primeiro, o que significa que ele não tá dentro do mesmo bloco de código. Vamos executar pra ver no que dá!
O segundo print do código não tá pertencendo ao if, e por isso vai ser executado independentemente da idade, ok?! Mas agora se você for menor de idade…
Viu?! Conseguimos mudar o comportamento do programa de acordo com uma condição, nesse caso, a idade do usuário. Mas a gente também pode fazer um código personalizado pra caso a condição seja falsa.
Pra isso, a gente pode usar a estrutura if/else. Se a condição for verdadeira, somente o código do if vai ser executado. Caso contrário, o código a ser executado vai ser o dentro do else.
Mas também é possível aninhar os ifs.
Ou seja, caso a idade não seja menor que 18 a gente faz outra verificação: se é igual a 18. Com isso, abordamos os 3 casos, onde a idade é menor que 18, igual a 18 ou maior que 18. Repara que o código dentro do último else só vai ser executado se os dois últimos ifs não forem verdadeiros, ok?!
Pra facilitar nossa vida na hora de aninhar, a gente também pode usar a estrutura if/elif/else.
Dessa forma a gente consegue fazer as verificações sem ter que colocar um if dentro do outro. Todas as estruturas de comparação tem que começar com um if, e só podem ter um else, mas podem ter vários elif, beleza?
A última coisa que você tem que ficar esperto é que as comparações são feitas em ordem, uma de cada vez, e o if para assim que uma das condições é verdadeira, beleza? Somente um bloco de código vai ser executado na sua estrutura!
No primeiro elif deste código a gente já sabe que a idade NÃO É menor que 18, porque se fosse teria parado no primeiro if. No segundo elif sabemos que idade NÃO É igual a 18, porque se não teria parado no primeiro elif, e assim por diante… Se você fizer comparações redundantes você vai perder pontos, cara!
Agora que você tá sabendo tudo de estruturas condicionais, bora fazer uns exercícios de fixação?!! Te espero lá, doido!