Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Lenguaje C

Dominando sentencias condicionales en C: IF, IF-ELSE y IF-ELSE anidados explicados

¿Qué es una sentencia condicional en C?

Las sentencias condicionales en C se usan para tomar decisiones basadas en condiciones. Las sentencias condicionales se ejecutan secuencialmente cuando no hay condición alrededor de las sentencias. Si pones alguna condición para un bloque de sentencias, el flujo de ejecución puede cambiar basado en el resultado evaluado por la condición. Este proceso se llama toma de decisiones en 'C'.

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

1. Sentencia If

2. Sentencia If-else

También se le llama bifurcación (branching) ya que un programa decide qué sentencia ejecutar basado en el resultado de la condición evaluada.

En este tutorial aprenderás:

Sentencia If

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

 if (condicion) instruccion;

La condición evalúa a verdadero o falso. Verdadero es siempre un valor no 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 programación 'C':

#include<stdio.h> int main() { int num1=1; int num2=2; if(num1<num2) //condición de prueba { printf("num1 es menor que num2"); } return 0; } 

Salida:

num1 es menor que num2 

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

Dominando sentencias condicionales en C: IF, IF-ELSE y IF-ELSE anidados explicados

  1. En el programa anterior, hemos inicializado dos variables con num1, num2 con valores 1, 2 respectivamente.
  2. Luego, hemos usado if con una expresión de prueba para verificar qué número es el menor y cuál es el mayor. Hemos usado una expresión relacional en la construcción if. Dado que el valor de num1 es menor que num2, la condición evaluará a verdadero.
  3. Así que imprimirá la sentencia dentro del bloque de If. Después, el control saldrá del bloque y el programa terminará con un resultado exitoso.

Operadores relacionales

C tiene seis operadores relacionales que pueden usarse 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

Ten 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 confundirlos.

Por ejemplo:

int x = 41; x =x+ 1; if (x == 42) { printf("¡Tienes éxito!");} 

Salida:

 Tienes éxito

Ten en cuenta que una condición que evalúa a un valor no cero se considera verdadera.

Por ejemplo:

int presente = 1; if (presente) printf("Hay alguien presente en el aula \n"); 

Salida:

Hay alguien presente en el aula

La sentencia If-Else

Dominando sentencias condicionales en C: IF, IF-ELSE y IF-ELSE anidados explicados

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

if (expresión-de-prueba) { Bloque de sentencias verdadero } Else { Bloque de sentencias falso } Sentencias; 

En este tipo de construcción, si el valor de la expresión de prueba es verdadero, entonces el bloque verdadero de sentencias se ejecutará. Si el valor de la expresión de prueba es falso, entonces el bloque falso de sentencias se ejecutará. En cualquier caso, después de la ejecución, el control se transferirá automáticamente a las sentencias 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("El valor es menor que 10"); } else { printf("El valor es mayor que 10"); } return 0; } 

Salida:

El valor es mayor que 10 

Dominando sentencias condicionales en C: IF, IF-ELSE y IF-ELSE anidados explicados

  1. Hemos inicializado una variable con valor 19. Tenemos que averiguar si el número es mayor o menor que 10 usando un programa en '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 puedes ver, el primer bloque es siempre un bloque verdadero, lo que significa que si el valor de la expresión de prueba es verdadero, entonces el primer bloque que es If, se ejecutará.
  4. El segundo bloque es un bloque else. Este bloque contiene las sentencias 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 se ejecuta el bloque else. Por lo tanto, nuestra salida será desde un bloque else que es "El valor es mayor que 10". Después del if-else, el programa terminará con un resultado exitoso.

En programación 'C' podemos usar múltiples construcciones if-else una dentro de otra, lo que se conoce como anidamiento de sentencias if-else.

Expresiones condicionales

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

Por ejemplo:

#include <stdio.h> int main() { int y; int x = 2; y = (x >= 6) ? 6 : x;/* Esto es equivalente a: if (x >= 5) y = 5; else y = x; */ printf("y =%d ",y); return 0;}

Salida:

y =2

Sentencias 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.

#include<stdio.h> int main() { int num=1; if(num<10) { if(num==1) { printf("El valor es:%d\n",num); } else { printf("El valor es mayor que 1"); } } else { printf("El valor es mayor que 10"); } return 0; } 

Salida:

El valor es: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.

Dominando sentencias condicionales en C: IF, IF-ELSE y IF-ELSE anidados explicados

  1. Primero, hemos declarado una variable num con valor 1. Luego hemos usado 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 bucle 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, entonces procesará el bloque If; de lo contrario, procesará un bloque else. En este caso, la condición es verdadera, por lo que se ejecuta el bloque If y el valor se imprime en la pantalla de salida.
  4. El programa anterior imprimirá el valor de una variable y saldrá con éxito.

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

NOTA: En if-else anidado, debemos tener cuidado con la indentación porque múltiples construcciones if-else están involucradas en este proceso, por lo que se vuelve difícil identificar construcciones individuales. La indentación adecuada facilita la lectura del programa.

Sentencias Else-if anidadas

Else-if anidado se usa cuando se requieren decisiones de múltiples caminos.

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

 if (expresión - de - prueba 1) { sentencia1; } else if (expresión - de - prueba 2) { Sentencia2; } else if (expresión - de - prueba 3) { Sentencia3; } else if (expresión - de - prueba n) { Sentencia n; } else { por defecto; } Sentencia 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 llama escalera else-if. Las expresiones de prueba se evalúan de arriba a abajo. Cada vez que se encuentra una expresión de prueba verdadera, se ejecuta la sentencia asociada con ella. Cuando todas las n expresiones de prueba se vuelven falsas, entonces se ejecuta la sentencia else por defecto.

Veamos el funcionamiento real con la ayuda de un programa.

#include<stdio.h> int main() { int notas=83; if(notas>75){ printf("Primera clase"); } else if(notas>65){ printf("Segunda clase"); } else if(notas>55){ printf("Tercera clase"); } else{ printf("Cuarta clase"); } return 0; }

Salida:

Primera clase

El programa anterior imprime la calificación según las notas obtenidas en un examen. Hemos usado la construcción de escalera else-if en el programa anterior.

Dominando sentencias condicionales en C: IF, IF-ELSE y IF-ELSE anidados explicados

  1. Hemos inicializado una variable con notas. En la estructura de escalera else-if, hemos proporcionado varias condiciones.
  2. El valor de la variable notas se comparará con la primera condición; como es verdadera, la sentencia asociada 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 todas las expresiones se evalúen; de lo contrario, el control saldrá de la escalera else-if y se imprimirá la sentencia por defecto.

Intenta modificar el valor y observa el cambio en la salida.

Resumen


Lenguaje C

  1. Expresiones, sentencias y bloques en C#: Guía completa con ejemplos prácticos
  2. Dominando la lógica condicional en C#: If, If-Else, If-ElseIf y sentencias If anidadas
  3. Dominando las Sentencias Condicionales en C++: if, if...else y if...else Anidado Explicados
  4. Dominando las sentencias condicionales en C: if, else y más
  5. Operadores en C++ explicados: Tipos, ejemplos y programas de muestra
  6. Dominando switch-case en C++: Sintaxis, uso y ejemplos prácticos
  7. Structs en C++ explicados con un ejemplo práctico
  8. Clases y objetos en C++: Guía práctica con ejemplos de código
  9. Dominar std::list en C++: Sintaxis, Funciones y Ejemplos Prácticos
  10. Struct vs Class en C++: Diferencias Clave, Sintaxis y Mejores Casos de Uso
  11. Dominar if…else en Java: Control de Flujo Explicado