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

Tabla de contenido:

Anonim

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

Las sentencias condicionales en la programación C se utilizan para tomar decisiones basadas en las condiciones. Las declaraciones condicionales se ejecutan secuencialmente cuando no hay ninguna condición alrededor de las declaraciones. Si coloca 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 denomina toma de decisiones en 'C'.

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

1. Declaración If

2. Declaración if-else

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

En este tutorial, aprenderá:

  • ¿Qué es una declaración condicional?
  • Si declaración
  • Operadores relacionales
  • La declaración If-Else
  • Expresiones condicionales
  • Declaraciones If-else anidadas
  • Declaraciones Else-if anidadas

Si declaración

Es uno de los poderosos enunciados condicionales. La sentencia If se encarga de modificar el flujo de ejecución de un programa. La instrucció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 instrucció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 entre llaves {}.

El siguiente programa ilustra el uso de if construct en la programación 'C':

#includeint main(){int num1=1;int num2=2;if(num1

Producción:

num1 is smaller than num2

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

  1. En el programa anterior, hemos inicializado dos variables con num1, num2 con valor como 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 el constructo if. Dado que el valor de num1 es menor que num2, la condición se evaluará como verdadera.
  3. Por lo tanto, imprimirá la declaración dentro del bloque de If. Después de eso, el control saldrá del bloque y el programa terminará con un resultado exitoso.

Operadores relacionales

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

<= menor o igual que

> mayor que

> = mayor o igual que

== igual a

! = no es igual a

Observe 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!");}

Producción :

 You succeed 

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

Por ejemplo:

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

Producción :

There is someone present in the classroom 

La declaración If-Else

La instrucció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 expresión-prueba es falso, entonces se ejecutará el bloque de declaraciones falso. En cualquier caso, tras la ejecución, el control se traspasará automáticamente a las sentencias que aparezcan 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.

#includeint main(){int num=19;if(num<10){printf("The value is less than 10");}else{printf("The value is greater than 10");}return 0;}

Producción:

The value is greater than 10

  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 usado la construcción if-else.
  2. Aquí hemos proporcionado una condición num <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 test-expression 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 tanto, la condición de prueba se vuelve falsa y se ejecuta el bloque else. Por lo tanto, nuestra salida será de un bloque else que es "El valor es mayor que 10". Después del if-else, el programa terminará con un resultado exitoso.

En la programación 'C' podemos usar múltiples construcciones if-else entre sí que se conocen como anidación 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 operador ?: Tiene solo una declaración asociada con el if y el else.

Por ejemplo:

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

Producción :

y =2

Declaraciones If-else anidadas

Cuando se requiere una serie de decisiones, se usa 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.

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

Producción:

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 anidada if-else.

  1. En primer lugar, hemos declarado una variable num con valor como 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á el ciclo interno. 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, procesará el bloque If, ​​de lo contrario procesará un bloque else. En este caso, la condición es verdadera, por lo tanto, si se ejecuta un bloque y el valor se imprime en la pantalla de salida.
  4. El programa anterior imprimirá el valor de una variable y saldrá con éxito.

Intente cambiar el valor de la variable para ver cómo se comporta el programa.

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

Declaraciones Else-if anidadas

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

La sintaxis general de cómo se construyen las escaleras de escalera en la 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 se parece a una escalera, por lo que también se la denomina escalera else-if. Las expresiones de prueba se evalúan de arriba a abajo. Siempre que se encuentre una expresión de prueba verdadera, se ejecutará 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.

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

Producción:

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.

  1. Hemos inicializado una variable con marcas. En la estructura de escalera else-if, hemos proporcionado varias condiciones.
  2. El valor de las marcas de variable se comparará con la primera condición, ya que es cierto que la declaración asociada con ella se imprimirá en la pantalla de salida.
  3. Si la primera condición de prueba resulta falsa, entonces se compara con la segunda condición.
  4. Este proceso continuará hasta que se evalúe la expresión all; 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.

Resumen

  • 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 denomina instrucciones 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 se deben probar múltiples rutas.
  • La escalera else-if se usa cuando tenemos que verificar varias formas basadas en el resultado de la expresión.