Resumen

Aprende a dominar los if anidados en C con un ejemplo claro: crear menús y submenús que reaccionan según la opción del usuario. Verás cómo estructurar el boilerplate, aplicar indentación correcta, usar el operador de comparación (==) y evitar errores típicos de llaves y retorno. Todo con un tono práctico y directo.

¿Qué son los if anidados en C y cuándo usarlos?

Los if anidados son decisiones dentro de decisiones. En C, permiten construir flujos como submenús: primero eliges una categoría (bebidas, comidas o postres) y luego una opción específica. Esta técnica es útil para sistemas de menús y para crear lógicas que se ramifican paso a paso.

  • Funcionan con bloques de código dentro de otros bloques.
  • Se combinan con else if y else para cubrir todos los casos.
  • Requieren indentación consistente para mantener legibilidad.
  • El estilo de llaves puede variar por preferencia, pero la indentación no.
  • C es un lenguaje lanzado en 1972 y aún vigente, ideal para aprender bases sólidas.

¿Cómo preparar el boilerplate y las condiciones?

Primero, arma la plantilla mínima: función main, llaves y variables. Aquí se “falsean” las entradas: no hay inputs del usuario todavía, así que se asignan valores a las opciones al inicio.

  • Usa comentarios para describir el algoritmo: genera menús según la elección del usuario.
  • Declara variables enteras para las opciones del menú.
  • Aplica el operador de comparación (==) en los if.
  • Cuida el bloque de main y su return 0.

¿Cómo escribir el menú principal y anidar if?

Ejemplo simplificado del flujo mostrado: si la opción 0 es bebidas, se imprime un submenú y se decide con un segundo if.

#include <stdio.h> int main() { // Este programa genera menús según lo que el usuario elija. int option_one = 0; // 0: bebidas, 1: comidas, 2: postres int option_two = 2; // 0: Platicola Cero, 1: Platicola Normal, 2: Platicpiña Colada if (option_one == 0) { printf("Usted eligio la opcion 0, vera nuestro menu de bebidas. Elija una.\n"); printf("0: Platicola Cero\n"); printf("1: Platicola Normal\n"); printf("2: Platicpina Colada\n"); if (option_two == 0) { printf("Usted eligio una Platicola cero. Mmm, rico.\n"); } else if (option_two == 1) { printf("Usted eligio una Platicola con mucha azucar. Azucar!\n"); } else if (option_two == 2) { printf("Usted eligio una Plaxipina colada.\n"); } else { printf("Opcion invalida.\n"); } } else if (option_one == 1) { // Aqui va el menu de alimentos. } else if (option_one == 2) { // Aqui va el menu de postres. } else { printf("Opcion invalida.\n"); } return 0; }
  • Observa la anidación: el segundo if depende de que option_one sea 0.
  • Usa saltos de línea con \n para imprimir el menú de forma legible.

¿Cómo imprimir opciones y mantener legibilidad?

  • Imprime un mensaje de bienvenida y explica qué hace cada número.
  • Ordena el contenido: primero el menú principal, luego el submenú.
  • Repite la estructura con else if para las demás categorías.

¿Qué errores evitar y qué buenas prácticas seguir?

En el ejemplo se muestran fallos comunes y cómo corregirlos. Mantén un flujo claro y separa cada bloque.

  • Respeta la indentación a un nivel dentro de cada bloque.
  • Verifica el cierre de llaves: cada if/else if/else debe cerrar correctamente.
  • No olvides el return 0; al final de main.
  • No confíes ciegamente en el autocomplete: puede insertar llaves innecesarias.
  • Si algo “se anidó” por error, revisa dónde abren y cierran las llaves.
  • Puedes compilar y ejecutar desde tu entorno con la tecla configurada (ejemplo: F6).
  • Mientras no uses inputs, asigna las opciones arriba para probar rápidamente.

¿Te animas al reto? Completa las ramas para comidas y postres replicando la misma estructura con else if, imprime sus submenús y maneja bien las opciones inválidas con un else final.

Comparte tu versión del menú en los comentarios: qué categorías agregaste, cómo organizaste las opciones y qué mensaje de error usaste.

      If anidados en C: crear menús paso a paso