Buscar este blog

martes, 30 de julio de 2013

Repetición

La tercera estructura que veremos en cuanto a los lenguajes procedimentales (como jC), después de la secuencia (las instrucciones se ejecutan una detrás de otra, en el orden en el que fueron escritas), es la repetición (también llamada iteración).

La estructura de repetición simplemente significa que un conjunto de instrucciones se repite un número determinado de veces. Para ello, en jC una de las posibles instrucciones a utilizar es while.

while( <condición> ) {
    instruccion1
    instruccion2
    instruccion3
    ...
    instruccionn
}

La estructura más arriba se denomina bucle, porque "da vueltas" (es decir, itera o repite), mientras se cumpla una condición (la que se especifica en el paréntesis del while). Cuando deja de cumplirse esa condición, termina.

La secuencia de ejecución de las partes que aparecen en el código más arriba son las siguientes:

repetir:
    if( <condición> ) {
        instruccion1
        instruccion2
        instruccion3
        ...
        instruccionn
    }

Es decir, primero (1) se comprueba la condición, y si es falsa, se continúa con la primera instrucción después del while; en cambio, si es cierta, (2) se ejecutan las instrucciones que aparecen dentro del cuerpo del while. Entonces se vuelve al paso 1.

Por ejemplo, el siguiente programa cuenta del 1 al 5.

import std.io;

def i = 0;

while ( i < 5 ) {
    println( i + 1 );

    i = i + 1;
}
Este código se puede pensar también así:

def i = 0;

repetir:
    if( i < 5 ) {
        println( i + 1 );

        i = i + 1;
    }

La instrucción i = i + 1; se lee como "asignarle a i el resultado de sumarle uno a i". Por ejemplo, si el valor de i es uno, entonces primero se ejecuta lo que está a la derecha del =, i + 1, y esa expresión devuelve 2. Finalmente, se le asigna 2 a i, pues la variable i es el destino de la asignación, lo que está a la izquierda del operador de asignación ('='). Como resultado, el valor de i es ahora 2, y se dice que se ha incrementado. Esta instrucción de incremento se puede abreviar como ++i, o como i++, no habiendo diferencia entre ellas.

import std.io;

def i = 0;

while ( i < 5 ) {
    println( i + 1 );

    ++i;
}

Para terminar, como ejemplo, podemos crear un programa que visualice una tabla de multiplicar. Para ello, es necesario ir multiplicando un número dado por los números del 1 al 10. Dada la descripción del problema, podemos pensar fácilmente en la necesidad de un bucle, que cuente desde el 1 hasta el 10.

import std.io;

def i = 0;
final def x = 5;

while ( i < 10 ) {
    print( i + 1 );
    print( " x " );
    print( x );
    print( " = " );
    println( x * ( i + 1 ) );

    ++i;
}

No hay comentarios:

Publicar un comentario