Sentencias condicionales en C: If, Else, If anidado con ejemplo
⚡ Resumen inteligente
En C, las sentencias condicionales controlan el flujo de un programa ejecutando bloques de código solo cuando una condición comprobada se evalúa como verdadera, lo que permite la toma de decisiones mediante estructuras condicionales como if, if-else, anidadas y else-if.
¿Qué es una declaración condicional en C?
En la programación en C, las sentencias condicionales se utilizan para tomar decisiones en función de ciertas condiciones. Cuando no hay ninguna condición asociada, las sentencias condicionales se ejecutan secuencialmente. Si se establece una condición para un bloque de sentencias, el flujo de ejecución puede cambiar según el resultado de dicha condición. Este proceso se denomina toma de decisiones en C.
Quitar 'Me gusta' bucles en C ese código repetitivo, las sentencias condicionales eligen un camino.
En la programación en 'C' las declaraciones condicionales son posibles con la ayuda de las dos construcciones siguientes:
- Si declaración
- Declaración if-else
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.
- En el programa anterior, hemos inicializado dos variables con num1, num2 con valor 1, 2 respectivamente.
- 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.
- 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 usar para formular una expresión booleana para tomar una decisión y probar condiciones, que devuelve verdadero o falso:
<— menos de<=— menor o igual que>— mayor que>=— mayor o igual que==— igual a!=— no es 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 instrucción if-else 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 estructura, si el valor de la expresión de prueba es verdadero, se ejecutará el bloque de instrucciones verdadero. Si el valor de la expresión de prueba es falso, se ejecutará el bloque de instrucciones falso. En cualquier caso, tras la ejecución, el control se transferirá automáticamente a las instrucciones que aparecen fuera del bloque 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
- 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.
- Aquí proporcionamos una condición número <10 porque tenemos que comparar nuestro valor con 10.
- 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.
- 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
Otra forma de expresar una sentencia if-else es mediante el operador ?:. En una expresión condicional, el operador ?: tiene una única sentencia asociada tanto al if como al 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.
- En primer lugar, hemos declarado una variable num con valor 1. Luego hemos utilizado la construcción if-else.
- En la estructura if-else externa, la condición proporcionada verifica si un número es menor que 10. Si la condición es verdadera, solo entonces se ejecutará el bloque interno. En este caso, la condición es verdadera, por lo que se procesa el bloque interno.
- En el bloque interno, tenemos una condición que verifica si nuestra variable contiene el valor 1 o no. Si la condición es verdadera, se ejecuta el bloque If; de lo contrario, se ejecuta el bloque else. En este caso, la condición es verdadera, por lo que se ejecuta el bloque If y el valor se muestra en la pantalla de salida.
- El programa anterior imprimirá el valor de una variable y finalizará con éxito.
Intenta cambiar el valor de variable Observa cómo se comporta el programa.
NOTA: En las estructuras if-else anidadas, debemos prestar atención a la indentación, ya que intervienen varias estructuras if-else, lo que dificulta la identificación de cada una. Una indentación 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 se asemeja a una escalera, por lo que también se la denomina escalera else-if. Las expresiones de prueba se evalúan de arriba hacia abajo. Cuando se encuentra una expresión de prueba verdadera, se ejecuta la instrucción asociada. 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.
- Hemos inicializado una variable con marcas. En la estructura de escalera else-if, hemos proporcionado varias condiciones.
- 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.
- Si la primera condición de prueba resulta falsa, se compara con la segunda condición.
- Este proceso continuará hasta que se evalúen todas las expresiones; de lo contrario, se saldrá del bucle else-if y se imprimirá la instrucción predeterminada.
Intente modificar el valor y observe el cambio en la salida.






