Instruções condicionais em C: if, else, if aninhado com exemplos
⚡ Resumo Inteligente
Em C, as instruções condicionais controlam o fluxo de um programa executando blocos de código somente quando uma condição testada é avaliada como verdadeira, permitindo a tomada de decisões por meio de estruturas condicionais como if, if-else, estruturas aninhadas e else-if.

O que é uma declaração condicional em C?
Em linguagem de programação C, as instruções condicionais são usadas para tomar decisões com base em condições. As instruções condicionais são executadas sequencialmente quando não há nenhuma condição que as envolva. Se você impuser uma condição a um bloco de instruções, o fluxo de execução poderá mudar com base no resultado da avaliação da condição. Esse processo é chamado de tomada de decisão em C.
Diferentemente dos laços em C que repete o código, as instruções condicionais escolhem um caminho.
Na programação 'C', declarações condicionais são possíveis com a ajuda das duas construções a seguir:
- Declaração If
- Declaração If-else
Também é chamado de ramificação, pois um programa decide qual instrução executar com base no resultado da condição avaliada.
Declaração If
É uma das declarações condicionais poderosas. A instrução If é responsável por modificar o fluxo de execução de um programa. A instrução If é sempre usada com uma condição. A condição é avaliada primeiro, antes de executar qualquer instrução dentro do corpo de If. A sintaxe da instrução if é a seguinte:
if (condition)
instruction;
A condição é avaliada como verdadeira ou falsa. True é sempre um valor diferente de zero e false é um valor que contém zero. As instruções podem ser uma única instrução ou um bloco de código entre chaves { }.
O programa a seguir ilustra o uso da construção if na programação 'C':
#include<stdio.h> int main() { int num1=1; int num2=2; if(num1<num2) //test-condition { printf("num1 is smaller than num2"); } return 0; }
Saída:
num1 is smaller than num2
O programa acima ilustra o uso da construção if para verificar a igualdade de dois números.
- No programa acima, inicializamos duas variáveis com num1, num2 com valor 1, 2 respectivamente.
- Então, usamos if com uma expressão de teste para verificar qual número é o menor e qual número é o maior. Usamos uma expressão relacional na construção if. Como o valor de num1 é menor que num2, a condição será avaliada como verdadeira.
- Assim imprimirá a instrução dentro do bloco If. Depois disso, o controle sairá do bloco e o programa será finalizado com sucesso.
Relacional Operatoros
A linguagem C possui seis operadores relacionais que podem ser usados para formular uma expressão booleana para tomar uma decisão e testar condições, retornando verdadeiro ou falso:
<- menor que<=— menor ou igual a>— maior que>=— maior ou igual a==— igual a!=— não é igual a
Observe que o teste de igualdade (==) é diferente do operador de atribuição (=) porque é um dos problemas mais comuns que um programador enfrenta ao misturá-los.
Por exemplo:
int x = 41; x =x+ 1; if (x == 42) { printf("You succeed!");}
Saída:
You succeed
Tenha em mente que uma condição avaliada como um valor diferente de zero é considerada verdadeira.
Por exemplo:
int present = 1; if (present) printf("There is someone present in the classroom \n");
Saída:
There is someone present in the classroom
A declaração If-Else
A instrução if-else é uma versão estendida da instrução if. A forma geral de if-else é a seguinte:
if (test-expression)
{
True block of statements
}
Else
{
False block of statements
}
Statements;
Nesse tipo de construção, se o valor da expressão de teste for verdadeiro, o bloco de instruções verdadeiro será executado. Se o valor da expressão de teste for falso, o bloco de instruções falso será executado. Em qualquer caso, após a execução, o controle será automaticamente transferido para as instruções que aparecem fora do bloco `if`.
Os programas a seguir ilustram o uso da construção if-else:
Inicializaremos uma variável com algum valor e escreveremos um programa para determinar se o valor é menor ou maior que dez.
Vamos começar.
#include<stdio.h> int main() { int num=19; if(num<10) { printf("The value is less than 10"); } else { printf("The value is greater than 10"); } return 0; }
Saída:
The value is greater than 10
- Inicializamos uma variável com valor 19. Temos que descobrir se o número é maior ou menor que 10 usando um programa 'C'. Para fazer isso, usamos a construção if-else.
- Aqui fornecemos uma condição num<10 porque temos que comparar nosso valor com 10.
- Como você pode ver, o primeiro bloco é sempre um bloco verdadeiro, o que significa que, se o valor da expressão de teste for verdadeiro, o primeiro bloco, que é If, será executado.
- O segundo bloco é um bloco else. Este bloco contém as instruções que serão executadas se o valor da expressão de teste se tornar falso. Em nosso programa, o valor de num é maior que dez, portanto, a condição de teste torna-se falsa e o bloco é executado. Assim, nossa saída será de um bloco else que é “O valor é maior que 10”. Após o if-else, o programa será encerrado com um resultado bem-sucedido.
Na programação 'C', podemos usar várias construções if-else umas dentro das outras, chamadas de aninhamento de instruções if-else.
Expressões condicionais
Outra forma de expressar uma instrução if-else é introduzindo o operador ?:. Em uma expressão condicional, o operador ?: tem apenas uma instrução associada ao if e ao else.
Por exemplo:
#include <stdio.h> int main() { int y; int x = 2; y = (x >= 6) ? 6 : x;/* This is equivalent to: if (x >= 5) y = 5; else y = x; */ printf("y =%d ",y); return 0;}
Saída:
y =2
Instruções If-else aninhadas
Quando uma série de decisões é necessária, if-else aninhado é usado. Aninhar significa usar uma construção if-else dentro de outra.
Vamos escrever um programa para ilustrar o uso de if-else aninhados.
#include<stdio.h> int main() { int num=1; if(num<10) { if(num==1) { printf("The value is:%d\n",num); } else { printf("The value is greater than 1"); } } else { printf("The value is greater than 10"); } return 0; }
Saída:
The value is:1
O programa acima verifica se um número é menor ou maior que 10 e imprime o resultado usando a construção if-else aninhada.
- Em primeiro lugar, declaramos uma variável num com valor 1. Em seguida, usamos a construção if-else.
- Na estrutura condicional externa (if-else), a condição fornecida verifica se um número é menor que 10. Se a condição for verdadeira, o bloco interno será executado. Neste caso, a condição é verdadeira, portanto o bloco interno é processado.
- No bloco interno, temos novamente uma condição que verifica se nossa variável contém o valor 1 ou não. Quando a condição é verdadeira, o bloco `if` é executado; caso contrário, um bloco `else` é executado. Neste caso, a condição é verdadeira, portanto o bloco `if` é executado e o valor é impresso na tela de saída.
- O programa acima imprimirá o valor de uma variável e terminará com sucesso.
Tente alterar o valor de variável Veja como o programa se comporta.
NOTA: Em estruturas if-else aninhadas, devemos ter cuidado com a indentação, pois várias construções if-else estão envolvidas nesse processo, o que dificulta a compreensão de cada uma delas. Uma indentação adequada facilita a leitura do programa.
Instruções Else-if aninhadas
Else-if aninhado é usado quando decisões de múltiplos caminhos são necessárias.
A sintaxe geral de como as escadas else-if são construídas na programação 'C' é a seguinte:
if (test - expression 1) { statement1; } else if (test - expression 2) { Statement2; } else if (test - expression 3) { Statement3; } else if (test - expression n) { Statement n; } else { default; } Statement x;
Esse tipo de estrutura é conhecido como escada else-if. Essa cadeia geralmente se parece com uma escada, daí o nome. As expressões de teste são avaliadas de cima para baixo. Sempre que uma expressão de teste verdadeira é encontrada, a instrução associada a ela é executada. Quando todas as n expressões de teste se tornam falsas, a instrução else padrão é executada.
Vamos ver o funcionamento real com a ajuda de um programa.
#include<stdio.h> int main() { int marks=83; if(marks>75){ printf("First class"); } else if(marks>65){ printf("Second class"); } else if(marks>55){ printf("Third class"); } else{ printf("Fourth class"); } return 0; }
Saída:
First class
O programa acima imprime a nota de acordo com as notas obtidas em um teste. Usamos a construção de escada else-if no programa acima.
- Inicializamos uma variável com marcas. Na estrutura de escada else-if, fornecemos várias condições.
- O valor da variável marcas será comparado com a primeira condição, pois se for verdade, a afirmação associada a ela será impressa na tela de saída.
- Se a primeira condição de teste for falsa, ela será comparada com a segunda condição.
- Esse processo continuará até que todas as expressões sejam avaliadas; caso contrário, o controle sairá da estrutura `else if` e a instrução `default` será exibida.
Tente modificar o valor e observe a mudança na saída.





