Comando If em C
Nesta aula, nós vamos conhecer a estrutura if e, ao longo do seu aprendizado de programação você vai ver que essa estrutura é extremamente útil e muito utilizada durante a programação.
Nós vamos entender então o que é a estrutura if, qual que é o problema, por que a gente precisa da estrutura if, como executar uma instrução apenas se um determinado teste for verdadeiro.
Nós já vimos como fazer teste, igual a dezoito, sexo igual a feminino, idade igual a dezoito, eu só falei a idade, o igual, enfim; nós já vimos como fazer testes.
Agora, como obter, como usar o resultado desse teste para decidir se a gente executa uma determinada instrução ou não?
A estrutura if serve exatamente para isso, ou seja, a forma de escrever é exatamente essa, perceba, if, a gente abre um par de parentes e faz um teste aqui dentro, e aí tudo o que for colocado aqui dentro do if apenas será executado se o teste for verdadeiro; então é para isso que a gente utiliza a estrutura if, e por isso que ela é tão importante.
Vamos ver aqui alguns exemplos?
Então, como eu mencionei, tudo que estiver dentro do if apenas será executado se o teste for verdadeiro, e preste bastante atenção nessa palavrinha aqui, olha só, apenas será executado se o teste for verdadeiro.
Então vamos a um exemplo, olha só, if, a minha variável sexo é igual a f minúsculo, então se esse teste for verdadeiro será executado esse printf, será impresso na tela a palavra feminino.
Ah, e se o teste for falso?
Olha só, se for verdadeiro ele entra e executa o que está aqui dentro; e se for falso?
Se for falso ele sai, na verdade ele não sai, ele salta e passa a executar o que estiver após o fechamento das chaves.
Bastante atenção a esses detalhes, se o teste for verdadeiro, faz o que está aqui dentro e depois segue a sequência do nosso programa; se o teste for falso ele salta tudo que estiver dentro do if.
Perceba que nós temos aqui a indentação, ele vai
saltar tudo o que está dentro do if e vai fazer o que tiver após.
Então olha só, tem um detalhe também extremamente importante, está vendo que nós temos aqui a abertura de chave e aqui o fechamento da chave?
Perceba que dentro desse if eu tenho apenas uma instrução, eu só tenho uma função printf.
Neste caso, o uso da chave é opcional.
Quando que ele é obrigatório?
Perceba, ele é obrigatório para mais de uma instrução.
Se eu vir aqui e colocar outra função aqui dentro, imprimindo qualquer coisa aqui na tela, agora eu tenho duas instruções, eu tenho essa daqui e eu tenho outra aqui, então neste caso o uso das chaves é obrigatório.
Se você ficar em dúvida, use sempre a chave, é melhor usar sempre do que correr o risco de esquecer quando for necessário utilizar.
Vamos aqui a um outro exemplo.
Os operadores lógicos, eles podem ser usados para juntar vários testes.
Então, se você ainda não percebeu, perceba o seguinte, estudar a programação é como subir degraus de uma escada, cada coisa que você vai aprendendo é um degrau que você vai subindo e isso vai compondo a resolução dos problemas que você tenta resolver.
Então perceba, nada é inútil, nada está aqui por acaso, essas coisas todas vão se juntando.
Por exemplo, olha só, if eu estou utilizando a estrutura de decisão if aqui, agora sexo igual a m, perceba que aqui nós temos um operador relacional que vai estabelecer uma relação entre o conteúdo dessa variável e esse caractere, e aqui agora nós temos um operador lógico, o operador E e aqui nós temos outro operador relacional.
Ou seja, eu quero saber se sexo igual a m E se a idade é igual a dezoito.
Se os dois forem verdadeiros, então será feito o que está aqui dentro.
Perceba que nós temos apenas uma instrução dentro do if.
Nesse caso as chaves aqui são opcionais, eu posso colocar ou eu posso omitir, então perceba que eu até coloquei uma colinha: o uso das chaves nesse caso aqui é opcional.
Agora então que nós vimos e entendemos como funciona a estrutura de decisão, vamos ver esse exemplo funcionando lá no Code Blocks?
Eu tenho aqui aquele mesmo exemplo; então perceba que eu criei aqui uma variável inteira para a idade, uma variável do tipo char para sexo; estou pedindo para o usuário digitar seu sexo e sua idade; estou fazendo a leitura dessas informações, e aí perceba que aqui na linha onze eu usei a nossa estrutura de decisão if sem chaves, por que sem as chaves?
Porque nesse caso é opcional, nós temos apenas uma instrução dentro do if.
Perceba que nós temos aqui a indentação, esse espaço, o print não está alinhado com o f, perceba que tem um recuo para a direita, isso aqui se chama indentação e indica que o printf apenas será executado se esse nosso teste aqui for verdadeiro.
Então, olha só: qual teste que a gente está fazendo aqui?
Nós temos dois testes: primeiro, verificando se o sexo é igual a “m” e, outro teste, conferindo se a idade é igual a dezoito.
Se os dois testes forem verdadeiros, então, nós iremos imprimir na tela o texto “Alistamento obrigatorio”.
Vamos testar esse nosso exemplo?
Eu vou compilar e executar o programa.
Eu vou digitar aqui agora “f” e dezoito, perceba que não aconteceu.
Por que não aconteceu nada?
Olha só: chegou aqui, sexo igual é igual a “m”?
Falso!
Então, se deu falso, o programa nem vai testar o outro, por quê?
Nós temos aqui um operador lógico E.
No operador lógico E só dá verdadeiro se os dois forem verdadeiros, como essa daqui já deu falso, então, ele não precisa fazer o próximo teste, porque falso como verdadeiro vai dar falso.
Então, o programa salta tudo o que está dentro do if e nesse caso terminou o nosso programa.
Agora, eu vou digitar aqui um outro exemplo de teste.
Olha só: eu vou colocar aqui “m” e vou digitar dezoito.
Eu vou pressionar a tecla enter!
Olha só: “Alistamento obrigatorio”.
Perceba que esse teste foi verdadeiro.
Este teste também foi verdadeiro.
O resultado dos dois é verdadeiro e, então, o programa imprimiu essa mensagem, aqui.
Vamos a um terceiro teste.
Eu vou executar o programa novamente, pronto!
Agora, eu vou digitar “m” e vou digitar aqui dezanove.
Perceba que esse indivíduo já se alistou no ano anterior.
Nesse caso, novamente, não acontece nada, por quê?
O sexo é igual a “m”?
Verdadeiro!
A idade é igual a dezoito?
Falso!
Então, o verdadeiro como falso vai dar falso.
O programa salta a estrutura if e faz o que tiver depois, nesse caso, é o “return 0;”, finalizando o nosso programa.