viernes, 16 de diciembre de 2011

Sentencias de Control en C# – III Parte

El ciclo for

El instrucción for es una de las sentencias más poderosas y flexibles para los ciclos.  En su forma general la instrucción para repetir una simple instrucción es:

for(inicialización; condición; iteración) sentencia;

Para repetir un bloque de instrucciones la forma general es:

for(inicialización; condición; iteración)
{
    secuencia de instrucciones;
}

La Inicialización es normalmente una sentencia de asignación que fija el valor inicial de la variable que controlará la iteraciones en el ciclo, actuando como contador.  La condición es una expresión booleana que determina si el ciclo se repetirá.  La expresión iteración define la cantidad por la cual la variable de control cambia cada vez que el ciclo es repetido. Nótese que cada expresión del for debe ser separado por punto y coma.  El ciclo for se repite mientras la condición es verdadera.  Una vez que la condición llega a ser falsa el ciclo se detiene y se sigue ejecutando la siguiente sentencia después del bloque for.  El ciclo puede iniciar de forma positiva o negativa e incrementar los valores en cualquier cantidad entera.  Por ejemplo el siguiente programa imprime los números del –100 al 100 con incrementos de –5

// A negatively running for loop.
using System;
class DecrFor {
static void Main() {
int x;
for(x = 100; x > -100; x -= 5)
Console.WriteLine(x);
}
}
}

Algo importante de recalcar es que la condición se evalúa siempre en la parte superior del for.  Esto significa que el código dentro del ciclo for puede no ejecutarse si la condición es falsa desde el inicio.  Por ejemplo:


int count;
for(count=10; count < 5; count++)
x += count; // Esta instrucción nunca se ejecutará

Note que en los ejemplos anteriores la parte de la inicialización, es decir, donde se define el contador del ciclo, la variable utilizada x = 100, se asume que ya fue declarada anteriormente como una variable del tipo entero.  Esto también se puede hacer al momento del ciclo.


// Sumar números del 1 al 100
using System;
class Sumar100 {
static void Main() {
int sum = 0;
for(int i = 1; i <= 100; i++)
sum += i;
Console.WriteLine("La Suma es " + sum);
}
}


En el ejemplo anterior se suman los números del 1 al 100.  La variable i se ha declarado e inicializado dentro del ciclo.


El ciclo infinito


Usted puede crear un ciclo infinito (un ciclo que nunca termina) usando el for dejando la expresión de condición vacía. Por ejemplo :


for(;;) // ciclo intencionalmente infinito
{
//...
}

Ciclo sin cuerpo


En C#, el cuerpo asociado con el ciclo for puede ser vacío. Esto es porque un el cuerpo vacío de un for es sintácticamente válido.  Los ciclos sin cuerpo son muy útiles. Por ejemplo para el programa usado para sumar los números del 1 al 100 podemos resumirlo como se muestra a continuación:



// El cuerpo del ciclo puede estar vacío
using System;
class Empty3 {
static void Main() {
int i;
int sum = 0;
// Suma los números del 1 al 100.
for(i = 1; i <= 5; sum += i++) ;
Console.WriteLine("La Suma es " + sum);
}
}


En este caso la instrucción de la suma se hace dentro de la instrucción for. ( sum += i++), aquí se acumula el valor de i a la variable sum y además se incrementa la variable.  Fíjese además que al terminar la linea del for se colocaron el punto y como para definir que no hay cuerpo,


Bueno, espero que haya sido útil.  Nos vemos dentro de un rato para postear otros ciclos.

No hay comentarios:

Publicar un comentario