Fundamentos de C/C++

Condiciones, bucles y switch en C y C++

En esta lección vas a combinar bucles y una sentencia switch en un pequeño programa que calcula una media y asigna una calificación.

Introducción

La sentencia if elige una rama según si una condición es verdadera o falsa, switch maneja casos con valores concretos, y los bucles repiten un bloque hasta una condición de parada. La sintaxis de estas sentencias es casi idéntica en C y en C++.

Puntos importantes

  • Activa los avisos del compilador (compiler warnings) y corrígelos todos.
  • Entiende bien el tipo y la vida útil (lifetime) de cada valor.
  • Comprueba siempre los datos de entrada y los límites de los índices de los arreglos.

Mira cómo funciona

Mueve el control para cambiar la nota. El diagrama de flujo ilumina el camino que sigue el programa y se resalta la línea de código correspondiente.

Ejemplos de código C y C++

C
Ejecutar →
main.c
#include <stdio.h>

int main(void) {
    int scores[] = {92, 71, 84};
    int total = 0;
    for (int i = 0; i < 3; ++i) total += scores[i];
    int average = total / 3;
    switch (average / 10) {
        case 10: case 9: puts("Grade A"); break;
        case 8: puts("Grade B"); break;
        default: puts("Keep practicing");
    }
    return 0;
}
Resultado de la ejecución
Grade B
C++
Ejecutar →
main.cpp
#include <iostream>
#include <vector>

int main() {
    std::vector<int> scores{92, 71, 84};
    int total = 0;
    for (int score : scores) total += score;
    switch ((total / static_cast<int>(scores.size())) / 10) {
        case 10: case 9: std::cout << "Grade A\n"; break;
        case 8: std::cout << "Grade B\n"; break;
        default: std::cout << "Keep practicing\n";
    }
}
Resultado de la ejecución
Grade B

Comparación entre C y C++

El bucle for suma las tres notas para calcular la media, y después switch usa average / 10 para elegir la calificación. Usa siempre llaves, aunque el bloque solo tenga una línea, y acuérdate de poner break al final de cada case para que el programa no pase por error al case siguiente. El índice de un arreglo también debe quedar siempre dentro de los límites.

C

C usa funciones procedurales pequeñas y muestra abiertamente cómo se representan los datos en memoria.

C++

C++ sigue permitiendo trabajar a bajo nivel, pero añade tipos de biblioteca y abstracciones más seguras.

Ejercicios de práctica

Ejecuta las dos versiones y después modifica el código para ver la diferencia de seguridad que aporta cada lenguaje.

  • Prueba entradas no válidas y valores límite.
  • Compila con las opciones -Wall -Wextra -Wpedantic para activar más avisos.
  • Pon las declaraciones comunes en un archivo de cabecera y la implementación en un archivo aparte.

Practica con un reto

Usa lo que cubre esta lección para resolver un problema real. Cada reto se ejecuta en el navegador, con pruebas al instante y una revisión de IA.

Todos los retos