Contenido del Curso
Conceptos básicos de C#
Conceptos básicos de C#
Bucle For
Un bucle nos permite ejecutar un fragmento de código tantas veces como queramos. Hay diferentes tipos de bucles. En C#, si queremos ejecutar un fragmento de código un número específico de veces, usamos el bucle for.
La plantilla (sintaxis) de un bucle for es la siguiente:
Ejemplo:
main
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { // Output "Hello World" ten times. for(int i = 0; i < 10; i++) { Console.WriteLine("Hello World"); } } } }
Nota
i++
es lo mismo quei = i + 1
. Incrementa el valor de la variable en1
.i–
decrementa el valor en1
.
int i = 0
es la parte de iniciación. La iniciación se realiza cuando comienza el bucle. Así que al inicio del bucle se crea una nueva variable temporal llamadai
y se inicia con un valor de0
;i < 10
es la condición. La condición se verifica en cada iteración (repetición) del bucle. El bucle continúa ejecutando el bloque de código encerrado mientras la condición sea verdadera;i++
es la operación a realizar después de cada iteración. La operación suele ser incremento o decremento. Dado que el valor dei
se incrementa después de cada iteración, la condicióni < 10
se vuelve falsa después de 10 iteraciones y el bucle se detiene;
El siguiente diagrama explica el flujo de un bucle for de manera visual:
Es importante notar que los tres componentes initiation
, condition
y operation
son opcionales y, por lo tanto, cualquiera de ellos puede omitirse, pero el bucle podría comportarse de manera diferente según los cambios.
No es una práctica recomendada, pero podemos declarar la variable del bucle fuera del bucle y dejar la parte de initiation
vacía.
main
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int i = 0; for(; i < 10; i++) { Console.WriteLine("Hello World"); } } } }
También podemos eliminar la parte de operation
y colocarla al final del bloque de código del bucle. El bucle se comportará igual que antes, ya que la variable i
sigue siendo incrementada después de cada iteración.
main
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int i = 0; for(; i < 10;) { Console.WriteLine("Hello World"); i++; } } } }
Tenga en cuenta que en el código anterior todavía colocamos un punto y coma (;
) en la sintaxis del bucle donde se esperaba int i = 0
. Este punto y coma siempre debe estar allí, ya sea que creemos una variable de bucle o no.
Eliminar la condición del bucle también es posible, pero hace que el bucle se ejecute infinitamente en caso de que no se termine manualmente (lo cual aprenderemos más adelante en los capítulos posteriores).
main
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { // In this case the variable `i` is useless so we don't create it. // The loop never ends for(;;) { Console.WriteLine("Hello World"); } } } }
Tenga en cuenta que todavía incluimos ambos puntos y comas en la sintaxis del bucle for(;;)
, estos son esenciales, de lo contrario, el compilador mostrará errores.
Dado que el valor de i
cambia en cada iteración, podemos usarlo a nuestro favor. Para entender esto, veamos un programa simple que muestra el valor de i
en cada iteración:
main
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { for(int i = 0; i < 10; i++) { Console.WriteLine(i); } } } }
Tenga en cuenta que termina en 9
porque comienza con el dígito 0
. El número total de iteraciones fue diez. Podemos modificar la iniciación, la condición y la operación para mostrar los diez números pares del 2 al 20.
Nota
Los números pares son los números que son divisibles por
2
. Por ejemplo, 2, 4, 6, 8, 10, etc. Los números pares también incluyen el número0
, pero solo trataremos con números pares por encima de0
en estos ejemplos.
main
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { for(int i = 2; i <= 20; i += 2) { Console.WriteLine(i); } } } }
Nota
i += 2
es una forma más corta de escribiri = i + 2
. Esta sintaxis también es válida para otros operadores, por ejemplo,i -= 2
,i *= 2
,i /= 2
,i %= 2
, etc.
El bucle comienza con 0
y aumenta el valor de i
en 2
cada iteración. Cambiamos la condición a i <= 20
para que el bucle se detenga en 20
.
La lógica anterior era para entender el funcionamiento de un bucle for. Podemos usar una lógica mucho más simple para mostrar los primeros diez números pares:
main
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { for(int i = 1; i <= 10; i++) { Console.WriteLine(i * 2); } } } }
En este caso, la condición es mucho más simple. Por ejemplo, si queremos los primeros 27 números pares, tendremos que saber cuál es el 27º número par para poder formar la condición para el método anterior, sin embargo, en este caso simplemente necesitamos modificar la condición a i <= 27
:
main
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { for(int i = 1; i <= 27; i++) { Console.WriteLine(i * 2); } } } }
¡Gracias por tus comentarios!