Estructuras de Control de Flujo en Lenguaje C

El control de flujo permite determinar el orden en que se ejecutan las instrucciones de un programa. En el lenguaje C, estas estructuras se dividen fundamentalmente en tres categorías: secuenciales, selectivas e iterativas.

1. Estructuras de Selección

Estas estructuras permiten bifurcar la ejecución del programa basándose en el cumplimiento de una condición lógica.

Sentencia if simple

Evalúa una expresión booleana y ejecuta el bloque de código solo si el resultado es verdadero.

int valor;
printf("Ingrese un numero: ");
scanf("%d", &valor);

if (valor > 0) {
    printf("El numero es positivo.\n");
}

Sentencia if...else

Proporciona una ruta alternativa en caso de que la condición inicial sea falsa.

int calificacion = 85;

if (calificacion >= 60) {
    printf("Aprobado\n");
} else {
    printf("Reprobado\n");
}

Estructura anidada y else if

Permite evaluar múltiples condiciones de forma sucesiva.

int puntuacion = 75;

if (puntuacion >= 90) {
    printf("Nivel A\n");
} else if (puntuacion >= 80) {
    printf("Nivel B\n");
} else if (puntuacion >= 70) {
    printf("Nivel C\n");
} else {
    printf("Nivel D\n");
}

Sentencia switch

Se utiliza para seleccionar una de entre múltiples opciones basadas en el valor de una expresión integral (int o char).

int opcion = 2;

switch (opcion) {
    case 1:
        printf("Iniciando proceso...\n");
        break;
    case 2:
        printf("Configurando sistema...\n");
        break;
    case 3:
        printf("Saliendo...\n");
        break;
    default:
        printf("Opcion no valida.\n");
}

2. Estructuras de Repetición (Bucles)

Los bucles permiten ejecutar un bloque de código varias veces mientras se mantenga una condición.

Bucle while

Verifica la condición antes de entrar al bloque. Si la condición es falsa desde el inicio, el código nunca se ejecuta.

int indice = 5;
while (indice > 0) {
    printf("Cuenta regresiva: %d\n", indice);
    indice--;
}

Bucle do-while

Garantiza que el bloque de código se ejecute al menos una vez, ya que la condición se evalúa al final.

int num;
do {
    printf("Introduce un numero (0 para salir): ");
    scanf("%d", &num);
} while (num != 0);

Bucle for

Es ideal cuando se conoce de antemano el número de iteraciones. Combina inicialización, condición e incremento en una sola línea.

int suma = 0;
for (int i = 1; i <= 10; i++) {
    suma += i;
}
printf("La suma de los primeros 10 numeros es: %d\n", suma);

3. Control de Saltos: break y continue

Estas palabras reservadas modifican el comportamiento estándar de los bucles.

  • break: Finaliza el bucle o switch de forma inmediata.
  • continue: Salta el resto de la iteración actual y pasa a la siguiente evaluación de la condición.
for (int k = 0; k < 10; k++) {
    if (k == 3) continue; // Salta el numero 3
    if (k == 8) break;    // Detiene el bucle al llegar a 8
    printf("%d ", k);
}

4. Consejos para la Depuración

Al trabajar con estructuras de control, es común encontrar errores lógicos. Aquí algunas recomendaciones técnicas:

  • Bucles infinitos: Asegúrese de que la variable de control se modifique correctamente dentro del bucle. Use printf para monitorear el valor de las variables en cada iteración.
  • Uso de scanf: Tenga cuidado con los caracteres de nueva línea atrapados en el búfer de entrada, lo que puede causar que el programa parezca "saltarse" lectruas.
  • Errores de límites: Verifique que los arreglos no sean accedidos fuera de sus índices (0 a N-1) dentro de bucles for.
  • División por cero: Antes de realizar una operación de división o módulo dentro de una estructura, valide que el divisor no sea nulo.

Etiquetas: C programación algoritmos Control de flujo

Publicado el 7-10 01:21