English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial básico de linguagem C

Controle de fluxo de linguagem C

Funções no C

Matrizes no C

Ponteiros no C

Strings no C

Estrutura de linguagem C

Arquivo de Linguagem C

Outros C

Manual de Referência do C

Sentença if...else no C

Neste tutorial, você aprenderá sobre o comando if no C programação (inclusive if ... else e if...else aninhados).

Comando if no C

A sintaxe dessa instrução no C é:

if (test expression) 
{
   //As instruções a serem executadas quando a expressão de teste for verdadeira
}

Como o comando if funciona?

O comando if avalia a expressão de teste dentro dos parênteses ()

  • Se o resultado da avaliação da expressão de teste for true, o if executará as instruções internas.

  • Se o resultado da avaliação da expressão de teste for false, o if não executará as instruções internas.

Para obter mais informações sobre quando a expressão de teste é avaliada como true (valor não nulo) e false (0), consulteRelacionaisOperadoresEOperadores lógicos.

Exemplo1:if

//O programa exibe um número, se ele for negativo
#include <stdio.h>
int main() {
    int number;
    printf("Digite um inteiro: ");
    scanf("%d", &number);
    //Se o número for menor que 0, então é true
    if (number < 0) {
        printf("Você digitou %d.\n", number);
    }
    printf("O comando if é muito simples.");
    return 0;
}

Saída1

输入一个整数: -25
Você digitou  -25.
O comando if é muito simples.

é um número ímpar.-25Quando, a avaliação da expressão de teste number<0 é true. Portanto,Você digitou-25 Será exibido na tela.

Saída2

输入一个整数: 5
O comando if é muito simples.

é um número ímpar.5Quando, a avaliação da expressão de teste number<0 é false e o if não executa as instruções internas

Comando if ... else em C

O comando if pode ter um bloco else opcional. A sintaxe do if..else é:

if (test expression) {
    //A instrução a ser executada quando a expressão de teste for verdadeira
}
else {
    // Se a expressão de teste for falsa, a instrução executada
}

Como o comando if...else funciona?

Se o resultado da avaliação da expressão de teste (expressão de teste) for true,

  • As instruções dentro do if serão executadas.

  • As instruções do else dentro do corpo serão saltadas, ou seja, as instruções dentro do else não serão executadas.

Se o valor da expressão de teste (expressão de teste) for false,

  • As instruções dentro do else serão executadas

  • As instruções dentro do corpo do if serão saltadas, ou seja, não serão executadas.

Exemplo2:if ... else

// Verificar se um número inteiro é ímpar ou par
#include <stdio.h>
int main() {
    int number;
    printf("Digite um inteiro: ");
    scanf("%d", &number);
    //se o resto for 0, então é true
    if (number%2 == 0) {
        printf("%d é um número par.", number);
    }
    else {
        printf("%d é um número ímpar.", number);
    }
    return 0;
}

Resultados de saída

输入一个整数: 23
23 Insira um inteiro:

é um número ímpar.23ao usuário inserir2ao digitar,(expressão de teste)expressão de teste número%

A avaliação do resultado de ==0 é falsa. Portanto, executará as instruções no corpo else.

if...else if...else executa duas instruções diferentes, dependendo se a expressão de teste (expressão de teste) for true ou false. Aplicável quando é necessário escolher entre duas ou mais possibilidades.

if...else if...else permite que você verifique várias expressões de teste e execute diferentes instruções.

Sintaxe de if...else if...else

if (expressão de teste1) {
   // Instrução
}
else if (expressão de teste2) {
   // Instrução
}
else if (expressão de teste3) {
   // Instrução
}
.
.
else {
   // Instrução
}

Exemplo3Exemplo de if...else if...else em C

//O programa usa os sinais =, > ou < para comparar dois inteiros
#include <stdio.h>
int main() {
    int número1, número2;
    printf("Insira dois inteiros: ");
    scanf("%d %d", &número1, &número2;
    //Verificar se dois inteiros são iguais
    if (número1 == número2) {
        printf("Resultado: %d = %d", número1, número2;
    }
    //Verificar número1É maior que número2.
    else if (número1 > número2) {
        printf("Resultado: %d > %d", número1, número2;
    }
    //Se ambas as expressões de teste acima forem falsas, execute as seguintes instruções
    else {
        printf("Resultado: %d < %d", número1, número2;
    }
    return 0;
}

Resultados de saída

Insira dois inteiros: 12
23
Resultado: 12 < 23

Estrutura aninhada de if...else em C

É possível incluir outra estrutura if...else no corpo de outra estrutura if...else.

Exemplo4Demonstração de if...else aninhado

O programa a seguir fornece um exemplo de uso de qualquer uma das estruturas if...else que envolvem dois inteiros <, > e =, mas usaremos estruturas if...else aninhadas para resolver o problema.

#include <stdio.h>
int main() {
    int número1, número2;
    printf("Insira dois inteiros: ");
    scanf("%d %d", &número1, &número2;
    if (número1 >= número2) {
      if (número1 == número2) {
        printf("Resultado: %d = %d", número1, número2;
      }
      else {
        printf("Resultado: %d > %d", número1, número2;
      }
    }
    else {
        printf("Resultado: %d < %d", número1, número2;
    }
    return 0;
}

Se o corpo do comando if...else tiver apenas uma instrução, não é necessário usar chaves {}.

Por exemplo, o código a seguir

if (a > b) {
    print("Hello");
}
print("Hi");

É equivalente a

if (a > b)
    print("Hello");
print("Hi");