miércoles, 7 de septiembre de 2011

7.- Sentencias de Control de Flujo (Parte 2)

Sentencias Iterativas

El lenguaje Java, como la mayoría de los lenguajes, proporciona sentencias que permiten realizar una tarea una y otra vez hasta que se cumpla una determinada condición, dicha tarea viene definida por un conjunto de sentencias ag rupadas en un bloque. Las sentencias iterativas son for, while y do...while

La sentencia for

Esta sentencia se encuentra en la mayoría de los lenguajes de programación. El bucle for se empleará cuando conocemos el número de veces que se ejecutará una sentencia o un bloque de sentencias, tal como se indica en la figura. La forma general que adopta la sentencia for es

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



El primer término inicialización, se usa para inicializar una variable índice, que controla el número de veces que se ejecutará el bucle. La condición representa la condición que ha de ser satisfecha para que el bucle
continúe su ejecución.
El incremento representa la cantidad que se incrementa la variable índice en cada repetición.

Ejemplo: Escribir un programa que imprima los primeros 10 primeros números
enteros empezando por el cero.

for (int i = 0; i < 10; i++) {
   System.out.println(i);
}

El resultado será: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

Ejemplo: Escribir un programa que imprima los números pare s positivos menores
o iguales que 20

for (int i=2; i <=20; i += 2) {
   System.out.println(i);
}

Ejemplo: Escribir un programa que imprima los números pares positivos menores
o iguales que 20 en orden decreciente

for (int i=20; i >= 2; i -= 2) {
   System.out.println(i);
}

Ejemplo: Escribir un programa que calcule el factorial de un número empleando
la sentencia iterativa for. Guardar el resultado en un número entero de tipo long .
Definición: el factorial de un número n es el resultado del producto 1*2*3* ... *(n-1)*n.

public class TestFactorial {
  public static void main(String[] args) {
     int numero=4;
     long resultado=1;
     for(int i=1; i<=numero; i++){
        resultado*=i;
     }
     System.out.println("El factorial es "+resultado);
   }
}

La sentencia while

A la palabra reservada while le sigue una condición encerrada entre paréntesis. El bloque de sentencias que le siguen se ejecuta siempre que la condición sea verdadera tal como se v e en la figura. La forma general que adopta la sentencia while es:

while (condición)
         sentencia;


Ejemplo: Escribir un programa que imprima los primeros 10 primeros números enteros empezando por el cero, empleando la sentencia iterativa while.

int i=0;
while (i<10) {
           System.out.println(i);
           i++;
}

Ejemplo: escribir un programa que calcule el factorial de un número empleando la sentencia iterativa while

public class TestWhileFactorial {
  public static void main(String[] args) {
     int numero=4;
     long resultado=1;
     while(numero>0){
        resultado*=numero;
        numero--;
     }
     System.out.println("El factorial es "+resultado);
   }
}

La sentencia do...while

Como hemos podido apreciar las sentencias for y while la condición está al principio del bucle, sin embargo, do...while la condición está al final del bucle, por lo que el bucle se ejecuta por lo menos una vez tal como se ve en la figura. do marca el comienzo del bucle y while el final del mismo. La forma general es:

do{
         sentencia;
}while(condición);


Ejemplo: Escribir un programa que imprima los primeros 10 primeros números enteros empezando por el cero, empleando la sentencia iterativa do..while.

int i=0;
do{
          System.out.println(i);
          i++;
}while(i < 10);

El bucle do...while, se usa menos que el bucle while, ya que habitualmente evaluamos la expresión que controla el bucle al comienzo, no al final. La sentencia break
A veces es necesario interrumpir la ejecución de un bucle for, while, o do...while.

for(int i = 0; i < 10; i++){
             if (i == 8) break;
             System.out.println(i);
}

Consideremos de nuevo el ejemplo del bucle for, que imprime los 10 primeros números enteros, se interrumpe la ejecución del bucle cuando se cumple la condición de que la variable contador i valga 8. El código se leerá: "salir del bucle cuando la variable contador i, sea igual a 8".

El código anterior es equivalente a

for(int i = 0; i <=8; i++)
             System.out.println(i);
 
La sentencia continue

La sentencia continue, fuerza al bucle a comenzar la siguiente iteración desde e l
principio. En la siguiente porción de código, se imprimen todos los números del 0
al 9 excepto el número 8.

for(int i = 0; i < 10; i++){
             if (i == 8) continue;
             System.out.println(i);
}

No hay comentarios:

Publicar un comentario