Bucle For
Un bucle nos permite ejecutar un fragmento de código tantas veces como deseemos. Existen diferentes tipos de bucles. En C#, si se requiere ejecutar un fragmento de código un número específico de veces, se utiliza el for loop.
La plantilla (sintaxis) de un bucle for es la siguiente:
main.cs
123for(initiation; condition; operation) { // code to execute }
Consideremos un ejemplo donde se utiliza esta sintaxis:
main.cs
123456789101112131415using 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 equivalente ai = i + 1. Incrementa el valor de la variable en1. De manera similar,i--decrementa el valor en1.
int i = 0es la parte de inicialización. La inicialización ocurre cuando comienza el ciclo. Al inicio del ciclo, se crea una nueva variable temporal llamadaiy se inicializa con el valor0;i < 10es la condición. La condición se verifica en cada iteración (repetición) del ciclo. El ciclo continúa ejecutando el bloque de código incluido mientras la condición sea verdadera;i++es la operación que se realiza después de cada iteración. La operación suele ser un incremento o decremento. Dado que el valor deise incrementa después de cada iteración, la condicióni < 10se vuelve falsa después de 10 iteraciones y el ciclo se detiene.
Es importante comprender que los tres componentes del ciclo for — initialization, condition y operation — son opcionales. Se puede omitir cualquiera de ellos, pero esto podría cambiar el comportamiento del ciclo.
Aunque no se recomienda, se puede declarar la variable del ciclo fuera del mismo y dejar vacía la parte de initialization. Esto significa que el ciclo seguirá funcionando, pero se debe tener cuidado ya que podría producir resultados inesperados si no se maneja correctamente.
main.cs
12345678910111213141516using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int i = 0; for(; i < 10; i++) { Console.WriteLine("Hello World"); } } } }
También se puede 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 incrementándose después de cada iteración.
main.cs
1234567891011121314151617using 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 aún colocamos un punto y coma (;) en la sintaxis del bucle donde se esperaba int i = 0. Este punto y coma siempre debe estar presente, ya sea que creemos una variable de bucle o no.
También es posible eliminar la condición del bucle, pero esto hace que el bucle se ejecute infinitamente si no se termina manualmente (lo cual aprenderemos en capítulos posteriores).
main.cs
1234567891011121314151617using 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"); } } } }
Nota
Aún incluimos ambos puntos y coma 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 aprovecharlo. Para entender esto, veamos un programa simple que muestra el valor de i en cada iteración:
main.cs
123456789101112131415using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { for(int i = 0; i < 10; i++) { Console.WriteLine(i); } } } }
Observe que termina en 9 porque comienza con el dígito 0. El número total de iteraciones fue diez. Es posible modificar la inicializació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 aquellos que son divisibles por
2. Por ejemplo: 2, 4, 6, 8, 10, etc. Los números pares también incluyen el número0, pero en estos ejemplos solo se considerarán los números pares mayores que0.
main.cs
123456789101112131415using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { for(int i = 2; i <= 20; i += 2) { Console.WriteLine(i); } } } }
Nota
i += 2es una forma abreviada de escribiri = i + 2. Esta sintaxis también es válida para otros operadores, por ejemploi -= 2,i *= 2,i /= 2,i %= 2, etc.
El bucle comienza en 0 y aumenta el valor de i en 2 en cada iteración. Cambiamos la condición a i <= 20 para que el bucle se detenga en 20.
La lógica anterior se utilizó para comprender el funcionamiento de un bucle for. Podemos emplear una lógica mucho más sencilla para mostrar los primeros diez números pares:
main.cs
1234567891011121314using 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 sencilla. Por ejemplo, si queremos los primeros 27 números pares, tendríamos que saber cuál es el vigésimo séptimo número par para poder formar la condición con el método anterior; sin embargo, en este caso simplemente necesitamos modificar la condición a i <= 27:
main.cs
1234567891011121314using 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!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Genial!
Completion tasa mejorada a 1.67
Bucle For
Desliza para mostrar el menú
Un bucle nos permite ejecutar un fragmento de código tantas veces como deseemos. Existen diferentes tipos de bucles. En C#, si se requiere ejecutar un fragmento de código un número específico de veces, se utiliza el for loop.
La plantilla (sintaxis) de un bucle for es la siguiente:
main.cs
123for(initiation; condition; operation) { // code to execute }
Consideremos un ejemplo donde se utiliza esta sintaxis:
main.cs
123456789101112131415using 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 equivalente ai = i + 1. Incrementa el valor de la variable en1. De manera similar,i--decrementa el valor en1.
int i = 0es la parte de inicialización. La inicialización ocurre cuando comienza el ciclo. Al inicio del ciclo, se crea una nueva variable temporal llamadaiy se inicializa con el valor0;i < 10es la condición. La condición se verifica en cada iteración (repetición) del ciclo. El ciclo continúa ejecutando el bloque de código incluido mientras la condición sea verdadera;i++es la operación que se realiza después de cada iteración. La operación suele ser un incremento o decremento. Dado que el valor deise incrementa después de cada iteración, la condicióni < 10se vuelve falsa después de 10 iteraciones y el ciclo se detiene.
Es importante comprender que los tres componentes del ciclo for — initialization, condition y operation — son opcionales. Se puede omitir cualquiera de ellos, pero esto podría cambiar el comportamiento del ciclo.
Aunque no se recomienda, se puede declarar la variable del ciclo fuera del mismo y dejar vacía la parte de initialization. Esto significa que el ciclo seguirá funcionando, pero se debe tener cuidado ya que podría producir resultados inesperados si no se maneja correctamente.
main.cs
12345678910111213141516using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int i = 0; for(; i < 10; i++) { Console.WriteLine("Hello World"); } } } }
También se puede 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 incrementándose después de cada iteración.
main.cs
1234567891011121314151617using 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 aún colocamos un punto y coma (;) en la sintaxis del bucle donde se esperaba int i = 0. Este punto y coma siempre debe estar presente, ya sea que creemos una variable de bucle o no.
También es posible eliminar la condición del bucle, pero esto hace que el bucle se ejecute infinitamente si no se termina manualmente (lo cual aprenderemos en capítulos posteriores).
main.cs
1234567891011121314151617using 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"); } } } }
Nota
Aún incluimos ambos puntos y coma 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 aprovecharlo. Para entender esto, veamos un programa simple que muestra el valor de i en cada iteración:
main.cs
123456789101112131415using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { for(int i = 0; i < 10; i++) { Console.WriteLine(i); } } } }
Observe que termina en 9 porque comienza con el dígito 0. El número total de iteraciones fue diez. Es posible modificar la inicializació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 aquellos que son divisibles por
2. Por ejemplo: 2, 4, 6, 8, 10, etc. Los números pares también incluyen el número0, pero en estos ejemplos solo se considerarán los números pares mayores que0.
main.cs
123456789101112131415using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { for(int i = 2; i <= 20; i += 2) { Console.WriteLine(i); } } } }
Nota
i += 2es una forma abreviada de escribiri = i + 2. Esta sintaxis también es válida para otros operadores, por ejemploi -= 2,i *= 2,i /= 2,i %= 2, etc.
El bucle comienza en 0 y aumenta el valor de i en 2 en cada iteración. Cambiamos la condición a i <= 20 para que el bucle se detenga en 20.
La lógica anterior se utilizó para comprender el funcionamiento de un bucle for. Podemos emplear una lógica mucho más sencilla para mostrar los primeros diez números pares:
main.cs
1234567891011121314using 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 sencilla. Por ejemplo, si queremos los primeros 27 números pares, tendríamos que saber cuál es el vigésimo séptimo número par para poder formar la condición con el método anterior; sin embargo, en este caso simplemente necesitamos modificar la condición a i <= 27:
main.cs
1234567891011121314using 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!