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.

  • 🔤 Declaração condicional: Uma instrução if executa seu bloco somente quando a condição for um valor verdadeiro diferente de zero, enquanto zero significa falso.
  • 🔀 Se-senão: A estrutura if-else adiciona uma ramificação falsa, executando um bloco quando a condição é verdadeira e outro quando é falsa.
  • ⚖️ Operadores relacionais: Seis operadores (<, <=, >, >=, ==, !=) constroem as expressões booleanas que cada condição testa.
  • 🪜 Escada "senão": Uma estrutura `else-if` aninhada verifica várias expressões de cima para baixo e executa o primeiro ramo verdadeiro ou um `else` padrão.
  • Operador ternário: A expressão condicional ?: escreve uma estrutura condicional if-else compacta que retorna um de dois valores em uma única linha.
  • 🤖 Assistência de IA: O GitHub Copilot elabora e revisa a lógica if-else, sinaliza a falta de chaves, sugere condições mais claras.

Instruções condicionais em C: IF, IF Else e IF Else aninhado

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:

  1. Declaração If
  2. 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.

Fluxograma da instrução if em C

  1. No programa acima, inicializamos duas variáveis ​​com num1, num2 com valor 1, 2 respectivamente.
  2. 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.
  3. 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

Fluxograma da instrução If-Else em C

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

Exemplo de saída da instrução if-else em C

  1. 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.
  2. Aqui fornecemos uma condição num<10 porque temos que comparar nosso valor com 10.
  3. 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.
  4. 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.

Instrução if-else aninhada em C

  1. Em primeiro lugar, declaramos uma variável num com valor 1. Em seguida, usamos a construção if-else.
  2. 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.
  3. 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.
  4. 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

Escada Else-if aninhada em C

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.

  1. Inicializamos uma variável com marcas. Na estrutura de escada else-if, fornecemos várias condições.
  2. 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.
  3. Se a primeira condição de teste for falsa, ela será comparada com a segunda condição.
  4. 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.

Perguntas Frequentes

Uma estrutura condicional `if-else` testa qualquer expressão booleana, incluindo intervalos e verificações relacionais. interruptor…caso Compara uma variável com valores constantes fixos e, frequentemente, resulta em uma tabela de saltos mais rápida em muitos casos.

O problema do "else pendente" surge da ambiguidade sobre a qual "if" um "else" pertence quando instruções "if" são aninhadas sem chaves. Em C, um "else" sempre é emparelhado com o "if" mais próximo que não corresponde. Adicionar chaves elimina a confusão.

Sim. Os operadores lógicos combinam condições: && exige que ambos os lados sejam verdadeiros, || exige que pelo menos um seja verdadeiro e ! inverte um resultado. Por exemplo, se (idade > 18 && cidadão) testa duas condições juntas em um único "if".

As chaves são opcionais quando o corpo do código é uma única instrução, de modo que o C executa apenas a próxima linha. Para duas ou mais instruções, as chaves são necessárias para agrupá-las. O uso constante de chaves é uma prática segura que previne erros de lógica.

A avaliação de curto-circuito para assim que o resultado é conhecido. Com &&, um lado esquerdo falso ignora o lado direito. Com ||, um lado esquerdo verdadeiro ignora o direito. Isso evita trabalho desnecessário e operações inseguras.

Sim. Uma estrutura condicional "else-if" é avaliada de cima para baixo e para na primeira condição verdadeira. Colocar condições amplas antes de condições específicas pode ocultar os casos específicos, portanto, ordene os testes do mais específico para o mais geral.

Sim. Assistentes de codificação com IA elaboram blocos condicionais a partir de comentários, convertem longas cadeias if-else em estruturas mais limpas e sinalizam possíveis erros, como o uso de = em vez de ==. Sempre teste a lógica gerada antes de confiar nela.

Copiloto do GitHub O sistema completa automaticamente as condições `if`, `else-if` e outras condições aninhadas a partir dos seus comentários ou do código circundante. Ele sugere expressões relacionais e lógicas e pode adicionar chaves que estejam faltando, embora você deva revisar cada sugestão.

Resuma esta postagem com: