Los bucles en C# o estructuras repetitivas, se utilizan para ejecutar instrucciones una o varias veces seguidas dependiendo de si se cumple o no una condición.
Cuando esta condición no se cumpla, el programa dejará de ejecutar el bucle saltará a ejecutar el resto del código. En csharp, existen los siguientes tipos de bucles.
Bucle For en C# o Bucle para…
Esta estructura, comienza dándole un valor determinado a una variable. Mientras esa variable no llegue a tener un valor determinado, se ejecutarán las instrucciones que están en su interior. Esto lo hace incrementando o decrementando la variable a cada vuelta de bucle. Esto tipo de estructura repetitiva, se suele utilizar a menudo para recorrer arrays, matrices o listas de datos. Vamos a ver un ejemplo sobre código.
using System;
namespace Bucles
{
class Program
{
static void Main(string[] args)
{
/*En este ejemplo veremos un ejercicio de ejemplo
* con un bucle for en el que vamos a mostrar
* por consula los números del 1 al 100*/
for (byte num = 0; num & lt; 100; num++)
{
/* Para num=0 ; mientras num sea menor que 100
* incrementamos la variable num en 1
* Mostramos un mensaje por consola*/
Console.WriteLine("El número es " + num);
}
/* Cuando salga del bucle es que ya la variable num
* llego al número 100. Pausamos la consola*/
Console.ReadKey(true);
}
}
}
Bucles en C#. Bucle While o bucle mientras
While podemos traducirlo por mientras. El programa entrará y ejecutará las instrucciones de este bucle cuando se cumpla una condición y siempre y cuando mientras esa condición se cumpla. Este bucle evalúa una condición. Ejecuta las instrucciones y después evalúa si la condición se modifica o no. Debido a esto, debemos tener cuidado, para no crear un bucle infinito. Veamos un ejemplo del bucle While.
using System;
namespace Bucles
{
class Program
{
static void Main(string[] args)
{
/*En este ejemplo veremos un ejercicio de ejemplo
* con un bucle while en el que vamos a mostrar
* por consula los números del 1 al 100*/
/* Declaramos una variable y la iniciamos
* (le asignamos un valor igual a 1).*/
byte numero = 1;
while (numero < 100)
{
// Mientras el número sea menor que 100
// Mostramos un mensaje por consola
Console.WriteLine("El número es el " + numero);
/* Una vez mostrado el mensaje la variable
* sigue valiendo uno. Por lo tanto hay que
* incrementar la variable numero
* para que valga 2,3,4, etc. Ya que en caso
* de no hacerlo crearíamos un bucle infinito,
* asi que la incrementamos.*/
numero++;
}
// Cuando salga del bucle es que ya la variable num
// llego al número 100. Pausamos la consola
Console.ReadKey(true);
}
}
}
Do..While en C#. Bucle hacer..mientras
Con esta estructura nos aseguramos que el bucle se va a ejecutar como mínimo una vez.
Esto es independiente de si una condición se cumple o no. El flujo del programa entrará a ejecutar como mínimo una vez las instrucciones de este bucle.
Una vez ejecutadas, entonces evaluará una condición que se encuenta en el while. Si esta se cumple volverá a ejecutarse nuevamente. El do..While podemos traducirlo como:
- Do: Hacer (como mínimo una vez.
- While: Mientras (se cumpla una condición).
Este tipo de bucle lo podemos utilizar por ejemplo para realizar menús personalizados. Veamos un ejemplo.
using System;
namespace Bucles
{
class Program
{
static void Main(string[] args)
{
/* En este ejemplo usaremos el bucle do - while
* Crearemos un menú personalizado que se le mostrará
* al usuario para que elija una opción.*/
// Declaramos una variable y la iniciamos en 0.
byte opcion = 0;
do // Hacer como mínimo una vez.
{
Console.WriteLine("1. Mostrar 100 números con un bucle for");
Console.WriteLine("2. Mostrar 100 números con un bucle while");
Console.WriteLine("3. ¿Cuál es el número?");
Console.WriteLine("4. Introduce un número. ¿Es mayor que cero?");
Console.WriteLine("5. Salir");
// Mostramos un mensaje por pantalla
Console.Write("Introduce un número: ");
// Lo pasamos a byte y lo guardamos en la variable.
opcion = byte.Parse(Console.ReadLine());
// y mientras el número sea menor que 1 o mayor que 5
} while (opcion < 1 || opcion > 5);
// Cuando salga del bucle es que ya la variable num
// llego al número 100. Pausamos la consola
Console.ReadKey();
}
}
}