for (Referencia de C#)
Mediante un bucle for , puede ejecutar una instrucción o un bloque de instrucciones varias veces hasta que una expresión especificada se evalúe con false. Esta clase de bucle es útil para recorrer en iteración las matrices y para otras aplicaciones en las que se sabe de antemano cuántas veces se desea el bucle para recorrer.
Ejemplo
En el ejemplo siguiente, el valor i se escribe en la consola y se incrementa en 1 en cada iteración del bucle.
class ForLoopTest
{
static void Main()
{
for (int i = 1; i <= 5; i++)
{
Console.WriteLine(i);
}
}
}
/*
Output:
1
2
3
4
5
*/
La instrucción for en el ejemplo anterior realiza las acciones siguientes.
Primero, el valor inicial i variable se establece. Este paso solamente pasa una vez, independientemente de cuántas veces repite el bucle. Puede pensar en esta inicialización como suceso fuera del proceso del Bucle.
Para evaluar la condición (i <= 5), el valor i se compara con 5.
Si i es menor o igual que 5, la condición se evalúa como true, y las acciones siguientes.
La instrucción Console.WriteLine en el cuerpo del bucle muestra el valor i.
El valor i se incrementa en 1.
El bucle vuelve al inicio del paso 2 de evaluar la condición de nuevo.
Si i es mayor que 5, la condición se evalúa como false, y a sale del bucle.
Observe que, si el valor inicial i es mayor que 5, el cuerpo del bucle no se ejecuta incluso una vez.
Cada instrucción for define el inicializador, la condición, y secciones de iterador. Estas secciones determinan normalmente cuántas veces recorre el bucle.
for (initializer; condition; iterator)
body
Las secciones responden a los siguientes propósitos.
La sección de inicializadores fija las condiciones iniciales. Las instrucciones de esta sección sólo se ejecutan una vez, antes de escribir el bucle. La sección puede contener sólo una de las dos opciones siguientes.
La declaración y la inicialización de una variable de bucle local, como el primer ejemplo muestra (int i = 1). La variable es local al bucle y no se puede tener acceso desde fuera del bucle.
Cero o más expressons de la instrucción de la lista siguiente, separados por comas.
Instrucción deasignación
invocación de un método
expresión incremento de prefijo o sufijo, como ++i o i++
expresión decremento de prefijo o sufijo, como --i o i--
creación de un objeto mediante nuevo
expresión deespera
La sección de la condición contiene una expresión booleana que se evalúa para determinar si el bucle debe salir o se debe ejecutar de nuevo.
La sección de iterador define qué ocurre después de cada iteración del cuerpo del bucle. La sección de iterador contiene cero o más de las expresiones siguientes de la instrucción, separados por comas:
Instrucción deasignación
invocación de un método
expresión incremento de prefijo o sufijo, como ++i o i++
expresión decremento de prefijo o sufijo, como --i o i--
creación de un objeto mediante nuevo
expresión deespera
El cuerpo del bucle consiste en una instrucción, una instrucción vacía, o un bloque de instrucciones, que se crea agregando cero o más instrucción entre llaves.
Puede interrumpir un bucle for mediante la palabra clave interrupción , o puede ir a la siguiente iteración mediante la palabra clave continúe . También puede dejar un bucle utilizando indicado, return, o la instrucción captura .
El primer ejemplo de este tema muestra la forma más habitual de bucle for , que toma decisiones siguientes para las secciones.
El inicializador declarar e inicializar una variable de bucle local, i, que mantiene un recuento de las iteraciones del bucle.
Las comprobaciones de condición el valor de la variable de bucle con un valor final conocido, 5.
La sección de iterador utiliza una instrucción de incremento de sufijo, i++, marque cada iteración del bucle.
El ejemplo siguiente muestra varias menos opciones comunes: asignando un valor a una variable externa de bucle en la sección de inicializadores, invocando el método Console.WriteLine en el inicializador y las secciones de iterador, y cambiar los valores de dos variables en la sección del iterador.
static void Main()
{
int i;
int j = 10;
for (i = 0, Console.WriteLine("Start: {0}",i); i < j; i++, j--, Console.WriteLine("i={0}, j={1}", i, j))
{
// Body of the loop.
}
}
// Output:
// Start: 0
// i=1, j=9
// i=2, j=8
// i=3, j=7
// i=4, j=6
// i=5, j=5
Todas las expresiones que definen una instrucción for son opcionales. Por ejemplo, la siguiente instrucción crea un bucle infinito.
for (; ; )
{
// ...
}
Especificación del lenguaje C#
Para obtener más información, consulte la Especificación del lenguaje C#. La especificación del lenguaje es la fuente definitiva de la sintaxis y el uso de C#.
Vea también
Referencia
foreach, in (Referencia de C#)
Instrucciones de iteración (Referencia de C#)