Published
Last modified
IF, ELSE e Operadores Lógicos em C
Uma ação muito importante que o processador de qualquer computador executa, e que o torna diferente de qualquer outra máquina, é a tomada de decisão definindo o que é verdadeiro e o que é falso.
Se quisermos fazer um bom programa, esse programa deve ser capaz de definir caminhos diferentes de acordo com decisões que o próprio programa toma. Para isso, precisamos de uma estrutura seletiva da qual o único valor possível é o bit 1 ou 0, resumindo: retornar o valor VERDADEIRO ou FALSO.

Em C / C++, como em muitas linguagens de programação, quem faz isso é o IF (SE traduzindo).
Ou seja, se for tal coisa, faça isso! Simples desse jeito.
O ELSE é o que chamamos de caso contrário, ou seja, se for falso execute o que está no ELSE.
Exemplificando: Se (IF) for tal coisa, faça isso! Caso contrário (ELSE), faça aquilo!
Usando IF
Para usar o IF basta digitar entre parênteses o que deve ser comparado.
IMPORTANTE: IF é uma palavra reservada que não aceita ponto-e-vírgula (;) no final.
Se for verdadeiro, o programa executará a primeira linha logo abaixo do if.
Mas, e se quisermos executar várias linhas se if for verdadeiro?
Se o if tiver que executar várias linhas, todas as linhas que devem ser enquadradas dentro do bloco de dados - as chaves ({}).
Usando ELSE
O ELSE só existe se tiver um IF. O else só será executado se o IF for falso.
Else executará só a primeira linha abaixo dele. Se o else tiver que executar várias linhas, vale a mesma regra de if. Todas as linhas a ser executadas deverão estar contidas dentro do bloco de dados ({}).
No exemplo abaixo está um exemplo de uso do if e else com apenas uma linha a ser executada.
#include <cstdio>
#include <cstdlib>
int main (void){
int nr;
printf ("Digite um numero:\n");
scanf ("%d", &nr);
getchar ();
if (nr>=0)
printf ("O numero digitado e positivo\n\n");
//se nr for maior ou igual a 0 o numero sera positivo
else
printf ("O numero digitado e negativo\n\n");
//caso contrario, ele sera negativo!
system ("pause");
}
Agora, um exemplo de um programa onde o if e o else têm mais de uma linha a ser executada. Preste atenção aos blocos de dados.
#include <cstdio>
#include <cstdlib>
int main (void){
int nr, a, b, x;
printf ("Escolha uma opcao:\n");
printf ("1.\tmultiplicar\n");
printf ("2.\tdividir\n");
scanf ("%d", &nr);
getchar ();
if (nr==1)
{
//se nr for igual a um executara todo esse bloco
printf ("Digite os dois numero que deverao ser multiplicados\n");
scanf ("%d %d", &a, &b);
getchar ();
x=a*b;
system ("cls"); //limpa a tela
printf ("%d X %d = %d\n", a, b, x);
}
else
{
//se nr nao for igual a um executara todo esse bloco
printf ("Digite os dois numero que deverao ser divididos\n");
scanf ("%d %d", &a, &b);
getchar ();
x=a/b;
system ("cls"); //limpa a tela
printf ("%d / %d = %d\n", a, b, x);
}
system ("pause");
}
Como podemos ver tudo que será executado está dentro das chaves.
Operadores lógicos
O comando if utiliza uma comparação para determinar se uma sentença é verdadeira ou falsa.
Para comparar utilizamos operadores lógicos e outras expressões que estão explicadas logo abaixo.
| > | MAIOR DO QUE |
| situação | resultado |
|---|---|
| 20>10 | verdadeiro |
| 10>20 | falso |
| 20>20 | falso |
| >= | MAIOR OU IGUAL A |
| situação | resultado |
|---|---|
| 20>=10 | verdadeiro |
| 10>=20 | falso |
| 20>=20 | verdadeiro |
| < | MENOR DO QUE |
| situação | resultado |
|---|---|
| 20<10 | falso |
| 10<20 | verdadeiro |
| 20<20 | falso |
| <= | MENOR OU IGUAL A |
| situação | resultado |
|---|---|
| 20<=10 | falso |
| 10<=20 | verdadeiro |
| 20<=20 | verdadeiro |
| == | IGUAL A |
| situação | resultado |
|---|---|
| 20==10 | falso |
| 10==20 | falso |
| 20==20 | verdadeiro |
| != | DIFERENTE DE |
| situação | resultado |
|---|---|
| 20!=10 | verdadeiro |
| 10!=20 | verdadeiro |
| 20!=20 | falso |
Além desses também há outros. Os mais comuns além desses é o E e o OU. Que servem para comparar duas ou mais sentenças no mesmo if.
O E (&&) exige que todas as sentenças sejam verdadeiras para considerar o IF verdadeiro.
| && | E |
| situação | resultado |
|---|---|
| 10<20 && 20>10 | verdadeiro |
| 10<20 && 10>20 | falso |
| 10>20 && 20>10 | falso |
| 10>20 && 20<10 | falso |
O OU (|| - duas barras verticais) exige que apenas uma das sentenças seja verdadeira para considerar o IF verdadeiro.
| || | OU |
| situação | resultado |
|---|---|
| 10<20 || 20>10 | verdadeiro |
| 10<20 || 10>20 | verdadeiro |
| 10>20 || 20>10 | verdadeiro |
| 10>20 || 20<10 | falso |

IF, ELSE e Operadores Lógicos em C by Denys Xavier is licensed under a Creative Commons Attribution 4.0 International License.