Declaración condicional C: IF, IF Else y IF anidado Else con ejemplo

¿Qué es una declaración condicional en C?

Declaraciones condicionales en C La programación se utiliza para tomar decisiones basadas en las condiciones. Las declaraciones condicionales se ejecutan secuencialmente cuando no hay ninguna condición alrededor de las declaraciones. Si pone alguna condición para un bloque de declaraciones, el flujo de ejecución puede cambiar según el resultado evaluado por la condición. Este proceso se llama toma de decisiones en 'C'.

En la programación en 'C' las declaraciones condicionales son posibles con la ayuda de las dos construcciones siguientes:

1. Si declaración

2. Declaración si-si no

También se denomina ramificación, ya que un programa decide qué declaración ejecutar en función del resultado de la condición evaluada.

Si declaración

Es una de las poderosas declaraciones condicionales. La declaración If es responsable de modificar el flujo de ejecución de un programa. La declaración If siempre se usa con una condición. La condición se evalúa primero antes de ejecutar cualquier declaración dentro del cuerpo de If. La sintaxis de la declaración if es la siguiente:

 if (condition) 
     instruction;

La condición se evalúa como verdadera o falsa. Verdadero es siempre un valor distinto de cero y falso es un valor que contiene cero. Las instrucciones pueden ser una sola instrucción o un bloque de código encerrado entre llaves { }.

El siguiente programa ilustra el uso de la construcción if en la programación '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;
}

Salida:

num1 is smaller than num2

El programa anterior ilustra el uso de la construcción if para verificar la igualdad de dos números.

Si declaración

  1. En el programa anterior, hemos inicializado dos variables con num1, num2 con valor 1, 2 respectivamente.
  2. Luego, hemos usado if con una expresión de prueba para verificar qué número es el más pequeño y qué número es el más grande. Hemos utilizado una expresión relacional en la construcción if. Dado que el valor de num1 es menor que num2, la condición se evaluará como verdadera.
  3. Así imprimirá la declaración dentro del bloque de If. Después de eso, el control saldrá del bloque y el programa finalizará con un resultado exitoso.

Relacional Operatoros

C tiene seis operadores relacionales que se pueden utilizar para formular una expresión booleana para tomar una decisión y probar condiciones, que devuelve verdadero o falso:

<menor que

<= menor o igual que

> mayor que

> = mayor o igual que

== igual a

!= no igual a

Tenga en cuenta que la prueba de igualdad (==) es diferente del operador de asignación (=) porque es uno de los problemas más comunes que enfrenta un programador al mezclarlos.

Por ejemplo:

int x = 41;
x =x+ 1;
if (x == 42) {
   printf("You succeed!");}

salida:

 You succeed

Tenga en cuenta que una condición que se evalúa como un valor distinto de cero se considera verdadera.

Por ejemplo:

int present = 1;
if (present)
  printf("There is someone present in the classroom \n");

salida:

There is someone present in the classroom

La sentencia If-Else

La declaración If-Else

La declaración if-else is es una versión extendida de If. La forma general de if-else es la siguiente:

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

En este tipo de construcción, si el valor de expresión-prueba es verdadero, entonces se ejecutará el bloque verdadero de declaraciones. Si el valor de la expresión de prueba es falso, se ejecutará el bloque falso de declaraciones. En cualquier caso, tras la ejecución, el control se transferirá automáticamente a las declaraciones que aparecen fuera del bloque de If.

Los siguientes programas ilustran el uso de la construcción if-else:


Inicializaremos una variable con algún valor y escribiremos un programa para determinar si el valor es menor que diez o mayor que diez.

Empecemos.

#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;
}

Salida:

The value is greater than 10

La declaración If-Else

  1. Hemos inicializado una variable con valor 19. Tenemos que averiguar si el número es mayor o menor que 10 usando un programa 'C'. Para hacer esto, hemos utilizado la construcción if-else.
  2. Aquí proporcionamos una condición número <10 porque tenemos que comparar nuestro valor con 10.
  3. Como puede ver, el primer bloque es siempre un bloque verdadero, lo que significa que, si el valor de la expresión de prueba es verdadero, se ejecutará el primer bloque, que es If.
  4. El segundo bloque es un bloque else. Este bloque contiene las declaraciones que se ejecutarán si el valor de la expresión de prueba se vuelve falso. En nuestro programa, el valor de num es mayor que diez, por lo que la condición de prueba se vuelve falsa y de lo contrario se ejecuta el bloque. Por lo tanto, nuestra salida será de un bloque else que es "El valor es mayor que 10". Después de if-else, el programa finalizará con un resultado exitoso.

En la programación 'C' podemos usar múltiples construcciones if-else entre sí, lo que se conoce como anidamiento de declaraciones if-else.

Expresiones condicionales

Hay otra forma de expresar una declaración if-else es introduciendo el ?: operador. En una expresión condicional el ?: El operador solo tiene una declaración asociada con el if y el else.

Por ejemplo:

#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;}

salida:

y =2

Declaraciones anidadas If-else

Cuando se requiere una serie de decisiones, se utiliza if-else anidado. Anidar significa usar una construcción if-else dentro de otra.

Escribamos un programa para ilustrar el uso de if-else anidado.

#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;
}

Salida:

The value is:1

El programa anterior verifica si un número es menor o mayor que 10 e imprime el resultado usando la construcción if-else anidada.

Declaraciones anidadas If-else

  1. En primer lugar, hemos declarado una variable num con valor 1. Luego hemos utilizado la construcción if-else.
  2. En el if-else externo, la condición proporcionada verifica si un número es menor que 10. Si la condición es verdadera, entonces y solo entonces ejecutará la bucle interior. En este caso, la condición es verdadera, por lo que se procesa el bloque interno.
  3. En el bloque interno, nuevamente tenemos una condición que verifica si nuestra variable contiene el valor 1 o no. Cuando una condición es verdadera, entonces procesará el bloque If; de lo contrario, procesará un bloque else. En este caso, la condición es verdadera, por lo tanto, se ejecuta el bloque If y el valor se imprime en la pantalla de salida.
  4. El programa anterior imprimirá el valor de un variable y salir con éxito.

Intente cambiar el valor de la variable y vea cómo se comporta el programa.

NOTA: En if-else anidado, tenemos que tener cuidado con la sangría porque en este proceso están involucradas múltiples construcciones if-else, por lo que resulta difícil descifrar las construcciones individuales. La sangría adecuada facilita la lectura del programa.

Declaraciones anidadas Else-if

El else-if anidado se utiliza cuando se requieren decisiones de rutas múltiples.

La sintaxis general de cómo se construyen las escaleras en programación 'C' es la siguiente:

 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;

Este tipo de estructura se conoce como escalera else-if. Esta cadena generalmente parece una escalera, por lo que también se la llama escalera de otro tipo. Las expresiones de prueba se evalúan de arriba a abajo. Siempre que se encuentra una expresión de prueba verdadera, se ejecuta la declaración asociada a ella. Cuando todas las n expresiones de prueba se vuelven falsas, se ejecuta la instrucción else predeterminada.

Veamos el funcionamiento real con la ayuda de un 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;
}

Salida:

First class

El programa anterior imprime la calificación según las calificaciones obtenidas en una prueba. Hemos utilizado la construcción de escalera else-if en el programa anterior.

Declaraciones anidadas Else-if

  1. Hemos inicializado una variable con marcas. En la estructura de escalera else-if, hemos proporcionado varias condiciones.
  2. El valor de las marcas variables se comparará con la primera condición, ya que si es verdadera, la declaración asociada a ella se imprimirá en la pantalla de salida.
  3. Si la primera condición de prueba resulta falsa, se compara con la segunda condición.
  4. Este proceso continuará hasta que se evalúe toda la expresión; de lo contrario, el control saldrá de la escalera else-if y se imprimirá la declaración predeterminada.

Intente modificar el valor y observe el cambio en la salida.

Resum

  • Las declaraciones de toma de decisiones o bifurcaciones se utilizan para seleccionar una ruta en función del resultado de la expresión evaluada.
  • También se le llama sentencias de control porque controla el flujo de ejecución de un programa.
  • 'C' proporciona construcciones if, if-else para declaraciones de toma de decisiones.
  • También podemos anidar if-else uno dentro del otro cuando es necesario probar varias rutas.
  • La escalera else-if se usa cuando tenemos que verificar varias formas según el resultado de la expresión.