BUCLES (FOR)

El bucle “FOR” tiene, en principio, la misma funcionalidad que el bucle “WHILE“. Sólo que su uso y declaración son diferentes. Este tipo de bucle lo vamos a usar, mayoritariamente, cuando sepamos la cantidad de veces que queremos repetir algo. Por ejemplo, para pedir 10 números al usuario, para ejecutar algo una CONTADA CANTIDAD DE VECES, etc. Digo “mayoritariamente” porque puede usarse de muchas maneras más complejas también, como ya veremos. Empecemos con la declaración.

 

for(int contador = 0; contador < 10; contador++)
{
  //Código a repetir...
}

 

Como pueden ver, la declaración en sí ya es un poco más compleja que la del bucle “WHILE“. Este tipo de bucle está dividido en 3 partes, separadas por un “;”. Esas 3 partes son:

  • Sentencia/as inicial/es. EJ: La declaración de una variable como el contador.
  • La condición de ejecución. Esto es EXACTAMENTE lo mismo que el “WHILE“.
  • Sentencia que se ejecuta DESPUÉS de cada iteración.

Cada una de las partes de este bucle ofrece una variedad bastante grande para iterar de formas diferentes. Aunque mayoritariamente este bucle se utiliza de la misma manera, siéntanse libres para escribirlo de la manera que quieran.

Imaginemos, para empezar, algo simple. Como mostrar todos los números desde el cero al 1000.

 

using System;
          
public class Program
{
  public static void Main()
  {
    for(int contador = 0; contador < 1000; contador = contador + 1 )
    {
      Console.WriteLine(contador);
    }
    
    Console.WriteLine("Gracias por usar este programa. Presione ENTER para terminar.");
    Console.ReadLine();
  }
}

 

Vemos, nuevamente, las 3 partes del for:

  • Sentencia inicial: Esta parte la estamos usando para crear la variable “contador“.
  • Condición de ejecución: El bucle se va a ejecutar MIENTRAS la variable “contador” sea menor a 1000.
  • Sentencia que se ejecuta DESPUÉS de cada iteración:contador = contador + 1“. O sea… Le sumo 1 a la variable “contador“.

 

Al momento de hacer un bucle de este tipo siempre hay que tener en cuenta estos tres pasos, y acomodarlos de tal manera que el bucle se ejecute como querémos realmente. Al principio, este bucle puede parecer bastante engorroso, pero es muy probable que lo terminen usando mucho más que el “WHILE“, y más cuando saben la cantidad de veces que tienen que repetir algo.

Otro ejemplo de este bucle que podríamos ver es para el siguiente problema:

 

 

EJERCICIO:

Mostrar todos los números pares desde el cero (inclusive), hasta el número indicado por el usuario.

using System;
          
public class Program
{
  public static void Main()
  {
    int num1;
    
    Console.Write("Ingrese un número: ");
    num1 = int.Parse(Console.ReadLine());
    
    for(int contador = 0; contador <= num1; contador += 2 )
    {
      Console.WriteLine(contador);
    }
    
    Console.WriteLine("Gracias por usar este programa. Presione ENTER para terminar.");
    Console.ReadLine();
  }
}

 

Noten que “contador += 2” es lo mismo que “contador = contador + 2“. La mayor parte de la lógica del ejercicio está implementada en la declaración del bucle. De hecho, es ahí mismo donde este tipo de bucles tiene ventaja sobre el anterior: pensamos una lógica que en su mayoría está resuelta en la declaración del bucle.

 

Otro ejemplo de esto también podría ser si quieren recorrer una contada cantidad de enemigos en un juego, o de autos, o de jugadores, o de lo que sea. También podrían optar por recorrerlos en el orden que ustedes quieran, ya que cambiando la declaración de este bucle podrían hacer que se ejecute “al revés” (lo pongo entre comillas porque no existe un “adelante” o “atrás“: el bucle se ejecuta en ninguna dirección).

 

PREGUNTA:

¿Cómo harían si quisieran que este bucle se ejecute haciendo que el contador reste en lugar de sumar? Por ejemplo, desde 100 hasta 0.

using System;
          
public class Program
{
  public static void Main()
  {
    for(int contador = 100; contador >= 0; contador -= 2 )
    {
      Console.WriteLine(contador);
    }
    
    Console.WriteLine("Gracias por usar este programa. Presione ENTER para terminar.");
    Console.ReadLine();
  }
}

 

En este caso, el código haría que el contador reste de 2 en 2.