Instrução condicional C: IF, IF Else e aninhado IF Else com exemplo

O que é uma declaração condicional em C?

Declarações condicionais em C a programação é usada para tomar decisões com base nas condições. As instruções condicionais são executadas sequencialmente quando não há nenhuma condição em torno das instruções. Se você colocar alguma condição para um bloco de instruções, o fluxo de execução poderá mudar com base no resultado avaliado pela condição. Este processo é chamado de tomada de decisão em 'C.'

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.

Declaração If

  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

C possui seis operadores relacionais que podem ser usados ​​para formular uma expressão booleana para tomada de decisão e teste de condições, que retorna verdadeiro ou falso:

<menos que

<= menor ou igual a

> maior que

>= maior ou igual a

== igual a

!= diferente de

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 declaração If-Else

A instrução if-else is é uma versão estendida de If. A forma geral de if-else é a seguinte:

if (test-expression)
{
    True block of statements
}
Else
{
    False block of statements
}
Statements;

Neste tipo de construção, se o valor da expressão de teste for verdadeiro, então o bloco verdadeiro de instruções será executado. Se o valor da expressão de teste for falso, então o bloco falso de instruções 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

A declaração If-Else

  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

Existe outra maneira 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ções If-else aninhadas

  1. Em primeiro lugar, declaramos uma variável num com valor 1. Em seguida, usamos a construção if-else.
  2. No if-else externo, a condição fornecida verifica se um número é menor que 10. Se a condição for verdadeira, então e somente então ele executará o laço interno. 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 uma condição for verdadeira, ele processará o bloco If, caso contrário, processará um bloco else. 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 a variável e saia com sucesso.

Tente alterar o valor da variável para ver como o programa se comporta.

OBSERVAÇÃO: No if-else aninhado, temos que ter cuidado com o recuo porque várias construções if-else estão envolvidas neste processo, tornando-se difícil descobrir construções individuais. O recuo adequado 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, portanto também é chamada de escada else-if. 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.

Instruções Else-if aninhadas

  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. Este processo continuará até que a expressão all seja avaliada, caso contrário o controle sairá da escada else-if e a instrução padrão será impressa.

Tente modificar o valor e observe a mudança na saída.

Resumo

  • A tomada de decisão ou instruções de ramificação são usadas para selecionar um caminho com base no resultado da expressão avaliada.
  • Também é chamada de instrução de controle porque controla o fluxo de execução de um programa.
  • 'C' fornece construções if, if-else para declarações de tomada de decisão.
  • Também podemos aninhar if-else um dentro do outro quando vários caminhos precisam ser testados.
  • A escada else-if é usada quando precisamos verificar várias maneiras com base no resultado da expressão.