Anuncios
Anuncios

Bienvenidos sean a este post, hoy hablaremos sobre una de las estructuras de control mas difundidas por todos los lenguajes como son los bucles for.

El for es utilizado para una funcion basica como es repetir una accion una determinada cantidad de veces, veamos su sintaxis:

for (varInicial; condicion; incrementador)
{
... instrucciones ...
}

En este caso siempre tendremos esta estructura basica, una variable con un valor inicial, una condicion relacionada a la variable y por ultimo un incrementador de la variable inicial, tambien llamado iterador, cuando vimos los tipos de datos usamos este bucle for:

for(int i=0; i<palabra.Length; i++)
{
    Console.Write(palabra[i]);
}
Anuncios

En este caso podemos ver como primero tenemos una variable llamada i de tipo int y con un valor inicial de 0, luego tendremos una condicion donde evaluaremos si i es menor a la longitud de la variable palabra, mientras esta condicion sea verdadera se hara el bucle, por ultimo utilizamos el operador ++ para incrementar en uno a la variable i por cada vuelta que demos, esto lo vimos en este post, esta es una forma de trabajar con el bucle for pero hoy vamos a crear un nuevo programa para ver otra aplicacion practica del bucle, lo haremos por medio de notepad y lo llamremos buclefor.cs y usaremos el siguiente codigo:

buclefor.cs

using System;

public class Program
{
    static void Main(string[] args)
    {
        string nombre;
        int edad, anyo, i;
        for(i=0; i<3; i++)
        {
            Console.Write("Ingresa tu nombre: ");
            nombre = Console.ReadLine();
            Console.Write("Ingresa tu edad: ");
            edad = int.Parse(Console.ReadLine());
            anyo = DateTime.Now.Year - edad;
            Console.WriteLine("Hola, " + nombre);
            Console.WriteLine("Tu edad es " + edad);
            Console.WriteLine("Y naciste en " + anyo);
            if (anyo >= 2000)
            {
                Console.WriteLine("Ud. es una persona del siglo XXI");
            }
            else if (anyo <= 2000 && anyo >= 1950)
            {
                Console.WriteLine("Ud. es una persona del siglo XX");
            }
            else
            {
                Console.WriteLine("Ud. es Matusalem!!!");
            }
        }
    }
}
Anuncios

En este caso a diferencia del anterior primero declaramos la variable i por fuera del for, y despues solamente debes iniciarlo con un valor, para este caso usamos cero, luego ponemos una condicion donde le diremos que mientras i sea menor a tres haga el bucle, luego el incrementador para cumplir la condicion, en el bloque del for ira el resto del programa, probemos de ejecutar la solucion con la modificacion

Anuncios
Anuncios

En este caso hemos podido hacer que nuestra aplicacion en lugar de solicitar un dato, nos solicite tres que es la cantidad que definimos en el for, si hubieramos usado un numero mas grande se hubiera repetido mas veces, pueden probar modificando la condicion a cinco o diez, aunque esta es una forma muy basica del for tambien acepta otras formas de uso, por ejemplo:

for(;;)
{
… instrucciones …
}

En este caso podemos usarlo para generar un bucle infinito dado que no tenemos ninguna condicion que evalue una posible salida del mismo, aunque esten pensando para que nos puede servir? vamos a hacer una modificacion en el codigo anterior para poder verlo, primero cambiaremos la siguiente linea:

for(i=0; i<3; i++)

Por esta otra linea:

for(;;)
Anuncios

Nuestra siguiente modificacion sera el mensaje de ingresar el nombre por el siguiente:

Console.Write("Ingresa tu nombre o q para salir: ");
Anuncios

Y nuestra ultima modificacion sera agregar el siguiente condicional if despues de la linea que recibe el nombre:

if (nombre == "q")
    break;
Nota: Este mismo tipo de sintaxis se puede usar tambien para el for siempre y cuando tenga una sola instruccion.
Anuncios

Este condicional se encargara de darnos la salida del bucle infinito, vamos a observar dos elementos de esta condicion, primero que no usamos llaves porque cuando tenemos una sola instruccion despues del if podemos usarlo sin llaves, el segundo elemento es el break, este metodo nos permite salir de cualquier bloque, continuando con las instrucciones siguientes, con esto generamos un programa que nos permite usar nuestra aplicacion la cantidad que queramos y una forma de salir, veamos el codigo final:

using System;

public class Program
{
    static void Main(string[] args)
    {
        string nombre;
        int edad, anyo;
        for(;;)
        {
            Console.Write("Ingresa tu nombre o q para salir: ");
            nombre = Console.ReadLine();
            if (nombre == "q")
                        break;
            Console.Write("Ingresa tu edad: ");
            edad = int.Parse(Console.ReadLine());
            anyo = DateTime.Now.Year - edad;
            Console.WriteLine("Hola, " + nombre);
            Console.WriteLine("Tu edad es " + edad);
            Console.WriteLine("Y naciste en " + anyo);
            if (anyo >= 2000)
            {
                Console.WriteLine("Ud. es una persona del siglo XXI");
            }
            else if (anyo <= 2000 && anyo >= 1950)
            {
                Console.WriteLine("Ud. es una persona del siglo XX");
            }
            else
            {
                Console.WriteLine("Ud. es Matusalem!!!");
            }
        }
    }
}
Anuncios

Otra modificacion que hicimos y no mencionamos fue eliminar la variable i de la declaracion dado que ahora no la vamos a utilizar, compilemos y veamos como trabaja nuestra aplicacon en el siguiente video

Anuncios

Como pueden ver ahora podemos agregar toda la cantidad de personas que necesitemos sin limite alguno, esto puede ser util por ejemplo para repetir un menu que el usuario debe ingresar, o cuando se debe ingresar datos a una base de datos, etc.

Anuncios

En resumen, hoy hemos visto el bucle for, su sintaxis, como se usa, para que nos puede ser util en su uso mas basico, otro uso practico, y unos ejemplos para ponerlos en practica, espero les haya sido util sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios

Tengo un Patreon donde podes acceder de manera exclusiva a material para este blog antes de ser publicado, sigue los pasos del link para saber como.

Tambien podes donar

Es para mantenimiento del sitio, gracias!

$1.00