Brazilian Flag American Flag

Back Home Page

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

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