Página principal

Diagrama de flujo


Descargar 228.8 Kb.
Página5/7
Fecha de conversión18.07.2016
Tamaño228.8 Kb.
1   2   3   4   5   6   7

Tipos de estructura de control


Algunas estructuras de control en el lenguaje Java

Antecendentes


El término "estructuras de control", viene del campo de la ciencia computacional. Cuando se presentan implementaciones de Java para las estructuras de control, nos referimos a ellas con la terminología de la Especificación del lenguaje Java, que se refiera a ella como instrucciones.

Ejecución secuencial


Pero por lo general las instrucciones se ejecutan una después de la otra, en el orden en que están escritas, es decir, en secuencia. Este proceso se conoce como ejecución secuencial.

Transferencia de control


En Java, como en otros lenguajes de programación por excelencia como C y/o C++, el programador puede especificar que las siguientes instrucciones a ejecutarse tal vez no sea la siguiente en secuencia. Esto se conoce como transferencia de control. Hay que tener en cuenta que la instrucción goto es una palabra reservada pero no se utiliza ni se recomienda. Un programa bien estructurado no necesita de esta instrucción. Si sabes programar no utilizaras goto.

Estructura de control: selección if simple


Se trata de una estructura de control que permite redirigir un curso de acción según la evaluación de una condición simple, sea falsa o verdadera. Por ejemplo: Escribir un programa en Java que compare dos números e indique si cuál es mayor, menor, mayor y/o igual, menor y/o igual, o si son iguales:

String strComparacion = "";

...

if( numero1 == numero2 )



strComparacion += numero1 + " == " + numero2;

if( numero1 > numero2 )

strComparacion += numero1 + " > " + numero2;

if( numero1 < numero2 )

strComparacion += numero1 + " < " + numero2;

if( numero1 >= numero2 )

strComparacion += numero1 + " >= " + numero2;

if( numero1 <= numero2 )

strComparacion += numero1 + " <= " + numero2;

System.out.println(strComparacion);

...

If-Then-Else


Si la condición es verdadera, se ejecuta el bloque de sentencias 1, de lo contrario, se ejecuta el bloque de sentencias 2.

IF (Condición) THEN

(Bloque de sentencias 1)

ELSE


(Bloque de sentencias 2)

END IF

Select-Case


  • Se evalúa la expresión, dando como resultado un número.

  • Luego, se recorren los "Case" dentro de la estructura buscando que el número coincida con uno de los valores.

  • Es necesario que coincidan todos sus valores.

  • Cuando se encuentra la primera coincidencia, se ejecuta el bloque de sentencias correspondiente y se sale de la estructura Select-Case.

  • Si no se encuentra ninguna coincidencia con ningún valor, se ejecuta el bloque de sentencias de la sección "Case Else".

SELECT (Expresión)

CASE Valor1

(Bloque de sentencias 1)

CASE Valor2

(Bloque de sentencias 2)

CASE Valor n

(Bloque de sentencias n)

CASE ELSE

(Bloque de sentencias "Else")

END SELECT

Do-While


Mientras la condición sea verdadera, se ejecutarán las sentencias del bloque.

DO WHILE (Condición)

(Bloque de sentencias)

LOOP


que también puede expresarse:

WHILE (Condición)

(Bloque de sentencias)

WEND

Do-Until


Se ejecuta el bloque de sentencias, hasta que la condición sea verdadera

DO

(Bloque de sentencias)



LOOP UNTIL (Condición)

For-Next


  • Primero, se evalúan las expresiones 1 y 2, dando como resultado dos números.

  • La variable del bucle recorrerá los valores desde el número dado por la expresión 1 hasta el número dado por la expresión 2.

  • El bloque de sentencias se ejecutará en cada uno de los valores que tome la variable del bucle.

FOR (Variable) = (Expresión1) TO (Expresión2) STEP (Salto)

(Bloque de sentencias)

NEXT

Estructuras anidadas

Las estructuras de control básicas pueden anidarse, es decir pueden ponerse una dentro de otra.


Estructura For-Next dentro de una estructura If-Then-Else


IF A > B THEN

FOR X = 1 TO 5

(Bloque de sentencias 1)

NEXT


ELSE

(Bloque de instrucciones 2)

END IF

Estructura If-Then-Else dentro de estructura For-Next


FOR x = 10 TO 20 STEP 2

IF A = C THEN

(Bloque de instrucciones)

ELSE


(Bloque de instrucciones)

END IF


NEXT

Estructura For-Next que está dentro de estructura Do-While


DO WHILE A > 0

FOR X = 1 TO 10

(Bloque de instrucciones)

NEXT


A = A - 1

LOOP

Estructura Do-While que está dentro de estructura For-Next


for(i=1;i<=10;i++)

{

do



{

/* Bloque de instrucciones */

a--;

}

while(a>0);



}

Estructura If-Then dentro de estructura For-Next dentro de estructura Do-While


Do While A > 0

For X = 1 to 10

If A = C Then

(Bloque de instrucciones1)

Else

(Bloque de instrucciones2)



End If

Else


Nextif

A = A - 1

Loop

Bucle (programación)

Un bucle o ciclo, en programación, es una sentencia que se realiza repetidas veces a un trozo aislado de código, hasta que la condición asignada a dicho bucle deje de cumplirse.

Generalmente, un bucle es utilizado para hacer una acción repetida sin tener que escribir varias veces el mismo código, lo que ahorra tiempo, deja el código más claro y facilita su modificación en el futuro.

El bucle y los condicionales representan la base de la programación estructurada. Es una evolución del código ensamblador, donde la única posibilidad de iterar un código era establecer una sentencia jump (que en los lenguajes de programación fue sustituida por el "ir a" o GOTO).

Los tres bucles más utilizados en programación son el bucle while, el bucle for y el bucle repetir.

Ejemplo en código C de sentencias repetidas:

int var=0;


//código que puede ser sustituido por un bucle

var = var + 2; //var igual a 2 (puede ser sustituído por var+=2)

var = var + 2; //var igual a 4

var = var + 2; //var igual a 6

var = var + 2; //var igual a 8

var = var + 2; //var igual a 11

// fin de código que puede ser sustituido por un bucle
printf("el resultado es %i", var );
Ejemplo con un bucle:
int var=0;
//Código para el bucle

int i;


// este es el Bucle for

for(i=0;i<10;i+=2)

{

var += 2;



}

printf("el resultado es %i", var);

Algunos lenguajes de programación tienen sentencias que permiten "escapar" de los bucles sin llegar a la condición de fin, como el romper o el devolver.
Ejemplo escapando de un bucle en Visual Basic 1:
Dim h&, var&

var = 0
'Codigo del Bucle

do

var = var + 2


if var = 10 then 'Codigo para salir del bucle

goto escape

end if

loop


escape:

print "El resultado es " & var


Ejemplo escapando de un bucle en Visual Basic 2:
Dim h&, var&

var = 0
'Codigo del Bucle

do

var = var + 2


if var = 10 then 'Codigo para salir del bucle

exit do


end if

loop


print "El resultado es " & var
Bucle for

El bucle for o ciclo for es una estructura de control en la que se puede indicar el número máximo de iteraciones. Está disponible en casi todos los lenguajes de programación imperativos.


Elementos del bucle










  • 'Variable de control': prácticamente un mandato impuesto por el uso habitual es utilizar la letra i como variable de control, o bien sus sucesoras en caso de bucles anidados. El uso de esta letra críptica quizás a primera vista es sin embargo una excelente forma de aportar agilidad de lectura al código por su uso tan extensivo. Como raras veces los bucles anidados superan las tres dimensiones (por una sencilla cuestión de explosión exponencial), las letras i, j y k suelen ser las únicas relacionadas con este uso. En C se define en el primer parámetro de la instrucción junto con la inicialización (opcional).

  • Inicialización de la variable de control: en pseudolenguaje se pide explicitarlo (es la sección := ValorInicial), sin embargo, otros lenguajes más permisivos como C no lo requieren de forma obligatoria. De todos modos, la práctica de utilizar variables de control que no se inicializan en el bucle no es recomendada para la legibilidad del código. En C se define en el primer parámetro del bucle junto con la variable de control.

  • Condición de control: en pseudolenguaje se ve representado por el valor final que puede tomar la variable de control (la sección A ValorFinal). En C es el segundo parámetro y puede ser cualquier condición (ni siquiera es obligación que esté la variable de control, aunque una vez más, esto no se considera una buena práctica).

  • Incremento: en pseudolenguaje se toma por defecto el valor 1, aunque puede explicitarse por medio de la sentencia PASO = ValorPaso cualquier número entero (léase bien entero, o sea que técnicamente podemos decrementar). En C es el último parámetro.

  • Cuerpo: es lo que se hará en cada iteración, pueden ser una o más instrucciones. En pseudolenguaje pesa la restricción de no poder alterar el valor de la variable de control; esto no es requerido en C, pero no se considera una buena práctica.

Usos


Su uso principal se orienta a los vectores, pudiendo modificar, agregar, eliminar o consultar datos que se encuentren según el índice. Por esto último, una condición mínima del vector es que debe ser ordenado, por que si se intenta leer un dato inexistente, esto genera un error de programación.

For en pseudolenguaje

La principal diferencia de un bucle PARA con respecto a los bucles MIENTRAS Y REPETIR, es que puede determinarse al comienzo del bucle cuántas veces se iterará el mismo, lo cual muchas veces puede redundar en una optimización del código por parte de los compiladores. Los condicionales constituyen junto con los bucles los pilares de la programación estructurada, y su uso es una evolución de una sentencia de lenguaje ensamblador que ejecutaba la siguiente línea o no en función del valor de una condición.

El bucle PARA se ha convertido en el bucle más ampliamente utilizado en la programación, ya que con la evolución de los lenguajes la mayoría de las condiciones de fin

MIENTRAS NoFinDeTabla(tabla) HACER

PróximoRegistro(tabla)

HacerAlgo(ElementoActual(tabla))

FIN MIENTRAS

Es lo mismo decir:

PARA i := 0 a CantidadRegistros(tabla) - 1, PASO = 1

PróximoRegistro(tabla)

HacerAlgo(ElementoActual(tabla))

FIN PARA


Otro uso común es utilizar los bucles PARA para recorrer vectores de dos o más dimensiones, en cuyo caso se anidan estas iteraciones.
SEUDOLENGUAJE

Vector a[3][4][2]. // Estamos indicando un vector de 3 dimensiones y 24 elementos en total.

PARA i:= 0 A 2 HACER

PARA j:= 0 A 3 HACER

PARA k:= 0 A 1 HACER

HacerAlgo(a[i][j][k])

FIN PARA

FIN PARA


FIN PARA
1   2   3   4   5   6   7


La base de datos está protegida por derechos de autor ©espanito.com 2016
enviar mensaje