martes, 1 de mayo de 2012

Sintaxis de Java (Estructuras de control de flujo)


-Introduccion

JAVA al igual que C y C++ utiliza las estructuras de control if-else, while, do-whiel y como selector de opciones la estructura switch.
Las estructuras de control rigen en su ejecución a partir de una condición del tipo boolean, es decir, el resultado de operadores lógicos o el resultado de un método que retorne un valor de verdad, verdadero o falso.

-Bifurcacion if-else

La bifurcación if-else es la más simple de las estructuras:
        
         if (expresionBooleana) {
                         sentencias1;
         }else{
                         sentencias2;
         }



-Bifurcacion if-else-if-else

if (expresionBooleana) {
   sentencias1;
}else if (exprecionBooleana2) {
   sentencias2;
}else{
   sentencias3;
}



-Bifurcacion switchs

El switch es clasificado como selector de sentencias de ejecución evaluando una expresión integral (valor numérico entero o carácter).
        
         switch (expresionIntegral) {
                         case valor1: sentencias1; break;
                         case valor2: sentencias2; break;
                         case valor3: sentencias3; break;
                         default: setencias4; break;
         }


La ejecución se resuelve evaluando la expresión integral y se busca desde la primera expresión hacia la expresión por defecto, cual etiqueta de evaluación de caso resuelve ser igual en valor, al valor de la expresión integral. En caso de no ser ninguna de las etiquetas (case) igual al valor de la expresión se ejecutan las sentencias de la opción default. En caso de no agregar la sentencias break, se ejecutara de continuo una etiqueta tras otra hasta encontrar un break o salir del alcance definido por el switch.
 

-Bucle while

Las sentencias de bucles, son clasificadas como sentencias de iteración. Las sentencias será ejecutadas a la medida en que sea verdadera la expresión booleana, solo dejaran de ejecutarse cuando esta expresión sea falsa. La expresión puede nunca ser verdadera, en ese caso se ejecutaran las sentencias que están dentro del ciclo.

         while (expresionBooleana){
                         sentencias;
         }


-Bucle do-while

La única diferencia con el bucle while es que el bucle do-while ejecuta al menos una vez las sentencias, aunque desde el principio la expresión booleana sea falsa.

         do{
                         sentencias;
         }while(expresionBooleana);


-Bucle for

El bucle for permite en un principio una inicialización, luego itera comenzando con una evaluación de la expresión booleana y por ultimo realiza algún tipo de paso a próximo, o reducción de la complejidad del algoritmo, en camino hacia convertir la expresión booleana en falso. Se ejecutan las sentencias, mientras la expresión booleana se mantenga en un estado de verdadero por cada paso.

         for(inicialización; expresionBooleana; postAccion){
                         sentencias;
         }


-Sentencia break

La sentencia break puede encontrarse dentro del alcance de un ciclo. Generalmente se encuentra dentro de una bifurcación, tal que si una condición booleana se cumple s ejecutara el break y saldrá del alcance del ciclo.
Si bien se escribe de la misma forma que el break del switch, su funcionamiento es distinto dado que no salta al siguiente paso, sino que corta la ejecución del ciclo, sin importar el estado de verdad o falsedad de la expresión booleana, y lo deja sin efecto.

-Sentencia continue

La sentencia continue puede utilizarse en ciclos, y permite la omisión de la ejecución de las sentencias definidas justo luego de la sentencia, dado que salta la ejecución hasta la próxima iteración. Generalmente se encuentra dentro de una bifurcación, de forma tal que una expresión booleana permita saltar las sentencias siguientes, hasta la próxima iteración del ciclo.
Debe tomarse muy en cuenta que antes de la ejecución de un continue debe haberse logrado reducir la complejidad del algoritmo, ya que al saltar a la próxima iteración, si la expresión booleana sigue en la misma condición y no se ha reducido la complejidad, puede generarse un ciclo infinito de ejecución.

5 comentarios: