
Aprendiendo JAVA (VI)
Por francisco 13 de Octubre del 2007
El bucle WHILE al contrario del bucle DO – WHILE primero evalúa la condición y después se ejecuta. Esto puede llevar a que, si en la primera evaluación la condición no se cumple, el bucle no se ejecutara nunca.
Abriremos nuestro editor
Eclipse y crearemos un nuevo proyecto al que llamaremos quinto y al que añadiremos una clase llamada whle. Para comprobar lo dicho añadiremos el siguiente código:
public class whle {
void EntroBucle(){
int primero=20;
int segundo=30;
boolean Entro=false;
while(primero>segundo){
System.out.println("Entro");
Entro=true;
}
if(!Entro){
System.out.println("No Entro");
}
}
}
En este código creamos un método void, es decir que no devuelve ningún valor. En el bucle while evaluamos la expresión primero mayor que segundo. Esta condición no se cumplirá nunca, así que el bucle no se ejecutara ninguna vez.
También podemos comprobar que no hemos creados ningún método del tipo:
Whle{
Codigo;
}
Es decir esta clase no tiene constructor. Si una clase no tiene constructor java le otorga un constructor por defecto, que es un constructor vacío.
Para probar este código creamos la clase testwhli como de costumbre seleccionando la opción public static void main(String[] args) y ponemos el siguiente código:
public static void main(String[] args) {
whle MiBucleWhile = new whle();
MiBucleWhile.EntroBucle();
}
El resultado sera:

En cambio se modificamos la línea 6 del código en la que se efectúa la evaluación de la condición y le ponemos: primero menor que segundo. El resultado será y NO os aconsejo que lo EJECUTÉIS porque nos encontramos ante un bucle sin fin. Dado que primero siempre será menor que segundo, si no ponemos alguna condición dentro del bucle que nos haga salir del mismo nunca parara.

También existen otros casos curiosos y útiles como son por ejemplo los bucles WHILE sin ningún cuerpo de código, es decir vacíos.
Imaginemos que debemos encontrar el punto medio entre dos números que nos de un usuario. Podríamos crear un método al que llamaríamos PuntoMedio cuyo código quedaría más o menos así:
void PuntoMedio(){
System.out.println("*****************************");
System.out.println("Introduce un numero");
PrimerNumero = sc.nextInt();
System.out.println("Introduce otro numero");
SegundoNumero = sc.nextInt();
if (PrimerNumero