A lo largo de la programación hemos visto por separado cómo funcionan los ciclos while y for, así como la estructura condicional if-else. Ahora toca unirlos, ya que en muchos programas reales es muy común que dentro de un ciclo necesitemos tomar decisiones.
Esto significa que, mientras el ciclo se ejecuta repetidamente, el if evaluará una condición y solo realizará ciertas acciones si esa condición se cumple. En pocas palabras, estamos mezclando repetición con elección.
¿Qué cambia cuando combinamos un ciclo con un if-else?
Cuando usamos solo un ciclo, el programa repite instrucciones una y otra vez.
Pero al incluir un if, podemos hacer que dentro de esas repeticiones ocurran acciones específicas, dependiendo de lo que esté pasando en cada vuelta del ciclo.
Por ejemplo, dentro de un ciclo podemos:
-
Mostrar solo números pares
-
Verificar si un valor es mayor o menor
-
Activar o desactivar comportamientos
-
Decidir si se ejecuta una parte del código o no
Esta combinación vuelve al programa más inteligente y flexible.
Ejemplo utilizando un ciclo for con un if
El siguiente código muestra cómo recorrer una serie de números y usar un condicional para imprimir únicamente los números pares:
int numero;
numero = 1;
for(int i = 1; i <= 100; i++)
{
if(numero % 2 == 0) { // Si el residuo es 0, el número es par
cout << numero << endl; // Se imprime solo si es par
}
numero = numero + 1; // Se incrementa el valor del número
}
Cuando colocamos un if dentro de un ciclo, este se convierte en un “filtro” que decide qué valores cumplirán cierta condición. En el ejemplo donde usamos numero % 2 == 0, lo que realmente está ocurriendo es que el programa revisa si el número actual puede dividirse entre 2 sin dejar residuo.
Si eso ocurre, entonces el número es par, y por esa razón aparece en la consola.
Este comportamiento no es exclusivo del número 2.
Si cambiamos el valor del módulo por 3, 4, 5 o cualquier otro número, el programa empezará a mostrar todos los números que sean múltiplos de esa cantidad. Por ejemplo:
-
Con
% 3aparecerán todos los múltiplos de 3. -
Con
% 4se imprimirán los múltiplos de 4. -
Con
% 5veremos los múltiplos de 5.
En todos los casos, el proceso continúa hasta que el ciclo llegue al límite que le hayamos marcado.
Ahora usando while
Cuando pasamos esta idea al ciclo while, la única cosa que varía es la forma de escribir el ciclo, ya que el funcionamiento del if se mantiene igual. La estructura sería algo así:
int numero;
numero = 1;
while(numero <= 20) // Se repite mientras numero no supere 20
{
if(numero % 2 == 0){ // Revisa si el número actual es par
cout << numero << endl; // Lo muestra si cumple la condición
}
numero = numero + 1; // Aumentamos su valor para avanzar
}
¿Qué ocurre paso a paso?
-
Se inicia con el número 1.
-
El ciclo while solo continúa mientras
numero <= 20. -
Dentro del ciclo, el if revisa si el número es par.
-
Si lo es, se imprime; si no, simplemente se ignora y continúa.
-
El número aumenta en cada vuelta para evitar que el ciclo quede corriendo para siempre.
-
Cuando el número llega a 21, la condición deja de cumplirse y el ciclo se cierra.
En pocas palabras
-
El if sirve para seleccionar qué números se van a mostrar.
-
El operador % decide si un número pertenece a un grupo (pares, múltiplos de 3, múltiplos de 5, etc.).
-
El ciclo (for o while) se encarga de repetir el proceso hasta el límite que establecimos.
-
Cambiando el número del módulo, cambiamos totalmente el tipo de resultados que obtenemos.
Comentarios
Publicar un comentario