Las sentencias de control de flujo, es la manera que un lenguaje tiene de controlar que sentencias ejecutar en cada momento. Las sentencias son las siguientes:
Sentencias de selección: if/else, switch
Sentencias de repetición (bucle): for, while, do/while
Sentencias de ruptura: break, continue, return
Las sentencias de selección o condicionales se basan en el resultado de una condición, o más, el programa se ejecuta instrucciones específicas. Las sentencias de repetición ejecutan un número de veces un conjunto de instrucciones.
También podríamos ver las excepciones como otra forma de controlar el flujo de un programa.
Ejemplo 1.
El siguiente programa ilustra el uso de la estructura do/while para obtener el inverso de un número entero que es proporcionado por el usuario. Lo hace utilizando el operador del módulo (%) para extraer el digito más a la derecha. El número original se divide entre 10, y la operación se repite hasta que el número no sea igual a cero, que es cuando termina la iteración.
/**
* Demuestra el uso de la estructura do/while
*/
import java.util.Scanner;
public class DoWhile01
{
public static void main(String args[]) {
int numero;
int digito;
Scanner teclado = new Scanner( System.in );
System.out.print( "Introduce un núumero:" );
numero = teclado.nextInt();
System.out.print( "El inverso del número es: " );
do {
digito = numero % 10;
System.out.print( digito );
numero = numero / 10;
} while( numero !=0 );
} //fin del método main
} //fin de la clase DoWhile01
La estructura de repetición while permite al programador especificar que un programa debe repetir una acción mientras que una condición (expresión booleana) sea verdadera.
El ciclo while se utiliza generalmente cuando el número de repeticiones no se conoce de antemano. La sintaxis general es:
Ejemplo 1.
En el siguiente ejemplo se ilustra la implementación de la estructura while en la que se pretende imprimir los números 1, 2, 3 y 4.
/**
* Demuestra el uso de la sentencia while
*/
public class While01
{
public static void main( String args[] )
{
int contador = 1;
while ( contador <= 4 )
{
System.out.println( contador );
contador++;
} //fin while
} //fin del método main
} //fin de la clase While01
Si la variable contador tiene un valor menor o igual que 4 cuando se evalúa la condición se incrementa el valor de contador y se efectúa la instrucción System.out.println. Entonces la instrucción while regresa automáticamente sobre sí misma y vuelve a probar la condición; las instrucciones se estarán repitiendo hasta que la condición no se cumpla, entonces se sale del ciclo y se siguen ejecutando las instrucciones que vienen a continuación y están fuera del ciclo.
Ejemplo 2.
El cuerpo de un ciclo puede contener cualquier tipo de sentencias secuenciales, selectivas o repetitivas. Cuando un ciclo está contenido en otro ciclo, se denominan ciclos anidados.
/**
* Demuestra el uso de la sentencia while
*/
public class While02
{
public static void main( String args[] )
{
int i = 1, j = 1;
while ( i <= 3 )
{
System.out.printf( "Para i = %d : ", i );
while ( j <= 4 ) {
System.out.printf( " j = %d ", j );
j++;
} //fin while
System.out.println();
i++;
j=1;
} //fin while
} //fin del método main
} //fin de la clase While02