freeCodeCamp/guide/portuguese/c/conditional-statements/index.md

6.4 KiB
Raw Blame History

title localeTitle
Conditional Statements Declarações Condicionais

Declarações Condicionais em C

As declarações condicionais também são conhecidas como instruções de ramificação. Eles são assim chamados porque o programa escolhe seguir um ramo ou outro.

1. se declaração

Esta é a forma mais simples das declarações condicionais. Consiste em uma expressão booleana seguida por uma ou mais instruções. Se a expressão booleana for avaliada como true , o bloco de código dentro da instrução 'if' será executado. Se a expressão booleana for avaliada como falsa , o primeiro conjunto de códigos após o final da instrução 'if' (após a chave de fechamento) será executado.

A linguagem de programação C assume qualquer valor diferente de zero e não nulo como true e, se for zero ou nulo, será assumido como valor falso .

Sintaxe

if(boolean_expression) 
 { 
    //Block of Statements executed when boolean_expression is true 
 } 

Exemplo

int a = 100; 
 if(a < 200) 
 { 
    printf("a is less than 200\n" ); 
 } 

Resultado

a is less than 200

2. if… else statement

Se a expressão booleana for avaliada como verdadeira , o bloco if será executado, caso contrário, o bloco else será executado.

Sintaxe

if(boolean_expression) 
 { 
    //Block of Statements executed when boolean_expression is true 
 } 
 else 
 { 
    //Block of Statements executed when boolean_expression is false 
 } 

Exemplo

int a = 300; 
 if(a < 200) 
 { 
    printf("a is less than 200\n" ); 
 } 
 else 
 { 
    printf("a is more than 200\n"); 
 } 

Resultado

a is more than 200

3. if… else if… else statement

Ao usar if ... else if..else statements, há alguns pontos a serem lembrados -

  • Um if pode ter zero ou um outro e deve vir depois de qualquer outro .
  • Um se pode ter zero para muitos mais se e eles devem vir antes do outro .
  • Uma vez que uma outra seja bem-sucedida, nenhum dos outros restantes será testado.

Sintaxe

if(boolean_expression_1) 
 { 
    //Block of Statements executed when boolean_expression_1 is true 
 } 
 else if(boolean_expression_2) 
 { 
    //Block of Statements executed when boolean_expression_1 is false and boolean_expression_2 is true 
 } 
 else if(boolean_expression_3) 
 { 
    //Block of Statements executed when both boolean_expression_1 and boolean_expression_2 are false and boolean_expression_3 is true 
 } 
 else 
 { 
    //Block of Statements executed when all boolean_expression_1, boolean_expression_2 and boolean_expression_3 are false 
 } 

Exemplo

int a = 300; 
 if(a == 100) 
 { 
    printf("a is equal to 100\n" ); 
 } 
 else if(a == 200) 
 { 
    printf("a is equal to 200\n"); 
 } 
 else if(a == 300) 
 { 
    printf("a is equal to 300\n"); 
 } 
 else 
 { 
    printf("a is more than 300\n"); 
 } 

Resultado

a is equal to 300

4. Aninhada se declaração

É sempre legal na programação C aninhar as instruções if-else, o que significa que você pode usar uma if ou else se a instrução dentro de outra if ou else if statement (s).

Sintaxe

if(boolean_expression_1) 
 { 
    //Executed when boolean_expression_1 is true 
    if(boolean_expression_2) 
    { 
      //Executed when both boolean_expression_1 and boolean_expression_2 are true 
    } 
 } 

Exemplo

int a = 100; 
 int b = 200; 
 if(a == 100) 
 { 
    printf("a is equal to 100\n" ); 
    if(b == 200) 
    { 
        printf("b is equal to 200\n"); 
    } 
 } 

Resultado

a is equal to 100 
 b is equal to 200 

5. Switch Case Statement

A instrução switch é frequentemente mais rápida que aninhada se… else (nem sempre). Além disso, a sintaxe da instrução switch é mais clara e fácil de entender.

Sintaxe do comutador

switch (n) 
 { 
    case constant1: 
        // code to be executed if n is equal to constant1; 
        break; 
 
    case constant2: 
        // code to be executed if n is equal to constant2; 
        break; 
        . 
        . 
        . 
    default: 
        // code to be executed if n doesn't match any constant 
 } 

Quando é encontrada uma constante de caso que corresponde à expressão do comutador, o controle do programa passa para o bloco de código associado a esse caso.

No pseudocódigo acima, suponha que o valor de n seja igual a constant2. O compilador executará o bloco de código associado à instrução case até o final do bloco de switches ou até que a instrução break seja encontrada.

A instrução break é usada para evitar que o código seja executado no próximo caso.

Exemplo:

// Program to create a simple calculator 
 // Performs addition, subtraction, multiplication or division depending the input from user 
 
 # include <stdio.h> 
 
 int main() 
 { 
 
    char operator; 
    double firstNumber,secondNumber; 
 
    printf("Enter an operator (+, -, *, /): "); 
    scanf("%c", &operator); 
 
    printf("Enter two operands: "); 
    scanf("%lf %lf",&firstNumber, &secondNumber); 
 
    switch(operator) 
    { 
        case '+': 
            printf("%.1lf + %.1lf = %.1lf",firstNumber, secondNumber, firstNumber+secondNumber); 
            break; 
 
        case '-': 
            printf("%.1lf - %.1lf = %.1lf",firstNumber, secondNumber, firstNumber-secondNumber); 
            break; 
 
        case '*': 
            printf("%.1lf * %.1lf = %.1lf",firstNumber, secondNumber, firstNumber*secondNumber); 
            break; 
 
        case '/': 
            printf("%.1lf / %.1lf = %.1lf",firstNumber, secondNumber, firstNumber/secondNumber); 
            break; 
 
        // operator is doesn't match any case constant (+, -, *, /) 
        default: 
            printf("Error! operator is not correct"); 
    } 
 
    return 0; 
 } 

Saída

Enter an operator (+, -, *,): - 
 Enter two operands: 32.5 
 12.4 
 32.5 - 12.4 = 20.1 

O operador '-' inserido pelo usuário é armazenado na variável do operador. E, dois operandos 32.5 e 12.4 são armazenados em variáveis firstNumber e secondNumber, respectivamente.

Então, o controle do programa pula para

printf("%.1lf / %.1lf = %.1lf",firstNumber, secondNumber, firstNumber/firstNumber); 

Finalmente, a instrução break termina a instrução switch.

Se a instrução break não for usada, todos os casos após o caso correto serão executados.