Instrucciones if y operadores en C: rangos y validaciones
Clase 3 de 13 • Curso de Control de Flujo en C
Contenido del curso
Toma de decisiones
Control de Bucles en C
Uso de las instrucciones break y continue
Cierre
Aprende a dominar la estructura de control más usada en C con ejemplos claros: if, else if, else y los operadores lógicos para crear rangos numéricos. Verás cómo compilar con F6, cómo debuggear errores típicos como el punto y coma faltante y cómo validar números negativos para evitar resultados inesperados.
¿Cómo controlar el flujo con if, else if y else en C?
La estructura condicional permite ejecutar bloques distintos según una expresión verdadera o falsa. Aquí se trabaja con una variable entera n y se imprimen mensajes según su valor, usando la librería estándar con include de stdio.h y un boilerplate mínimo con main.
- Librería estándar:
stdio.hpara usarprinten los ejemplos. - Variable entera:
int n = 11. - Mensajes: “El número es mayor que diez.”, “El número es diez.”, “El número es menor que diez.”, “Error: no hay número.”
¿Qué validan los operadores de comparación?
Los operadores de comparación definen las condiciones del if:
>mayor que diez.<menor que diez.==igual a diez.>=mayor o igual que cero para aceptar no negativos.
¿Cómo se ve la cadena if-else if-else en código?
Este es el esqueleto básico usado para probar valores de n y mostrar la lógica de las condiciones encadenadas:
#include <stdio.h> int main() { int n = 11; // cambiar a 10, 21, 9 o -1 para probar. if (n > 10) { print("El número es mayor que diez.\n"); } else if (n == 10) { print("El número es diez.\n"); } else if (n < 10) { print("El número es menor que diez.\n"); } else { print("Error: no hay número.\n"); } return 0; }
- Probar
n = 11imprime: “El número es mayor que diez.” - Probar
n = 10imprime: “El número es diez.” - Probar
n = 9imprime: “El número es menor que diez.”
¿Cómo crear rangos numéricos con and y por qué or no sirve aquí?
Cuando n = 21, la condición n > 10 se cumple primero y no se llega a evaluar una condición posterior como “mayor que veinte”. Para controlar esto, se definen rangos con el operador lógico and.
¿Qué significa and y cómo se escribe?
- and se escribe con doble signo de ampersand:
&&. - Significa: “esta condición es verdadera y esta otra también”. Ambas deben cumplirse.
Ejemplo de rango: “mayor que diez y menor que veinte”.
if (n > 10 && n < 20) { print("El número es mayor que diez, pero menor que veinte.\n"); }
- Así evitas que
n = 21dispare condiciones pensadas para 10–19. - El código es “mucho de probar y experimentar” hasta confirmar la salida esperada.
¿Cuándo or cambia el resultado?
- or cumple la expresión si se cumple cualquiera de las condiciones.
- En este escenario, “mayor que diez o mayor que veinte” marca verdadero con
n = 21tan pronto se cumpla la primera parte, por eso “no nos sirve un or” cuando quieres rangos exclusivos.
¿Cómo compilar, debuggear y validar entradas en C?
Además de la lógica, es clave dominar la compilación y la detección de errores. Se muestra cómo corregir un punto y coma faltante y cómo asegurar que los datos de entrada cumplan reglas (por ejemplo, no aceptar negativos).
- Compilar: F6. En laptop: FN + F6.
- Guardar: Control + S antes de compilar.
- Terminal: usar
clearpara ver la salida limpia. - Tip de debugging: si el compilador marca un error en
else, revisa la instrucción anterior; a menudo el problema es un ; faltante.
¿Cómo validar que n sea positivo y dentro de un rango?
Puedes combinar comparación con and y “mayor o igual” para aceptar solo números positivos y acotar un rango. Si no se cumple, muestra un mensaje de error.
#include <stdio.h> int main() { int n = -1; // prueba con -1 para ver el error de negativos. if (n >= 0 && n < 10) { print("El número está en el rango de cero al nueve.\n"); } else if (n >= 10 && n < 20) { print("El número es mayor que diez, pero menor que veinte.\n"); } else if (n == 10) { print("El número es diez.\n"); } else if (n > 20) { print("El número es mayor que veinte.\n"); } else if (n < 0) { print("Error: no quiero números negativos.\n"); } else { print("Error: no hay número.\n"); } return 0; }
- Con
n = -1imprime: “Error: no quiero números negativos.” - Con
n = 21se valida como “mayor que veinte”. - Con
n = 9se valida “rango de cero al nueve”.
¿Tienes dudas sobre más operadores o quieres compartir un caso con condiciones compuestas? Deja un comentario y cuéntame qué rango o validación necesitas implementar.