Los bucles while, se ejecutan mientras se cumpla la condición que
contienen. Si la condición no se cumple la primera vez, no se ejecutaría ni una sola vez. Si utilizamos while == algo atención al doble signo igual.
public class Bucleswhile {
public static void main(String[] args) {
int tabla=1;
int resultado;
while (tabla<8) {
resultado=tabla*5;
System.out.println(tabla+"x 5= "+resultado);
tabla+=1;
}
}
}Resultado:
1x 5= 5
2x 5= 10
3x 5= 15
4x 5= 20
5x 5= 25
6x 5= 30
7x 5= 35while / break Para salir del bucle, también podemos utilizar la instrucción break.
import java.util.Scanner;
public class Bucleswhile {
public static void main(String[] args) {
float suma=0;
while (true) {
try {
Scanner mi_escaner = new Scanner(System.in);
System.out.println("Introduzca un número (0 para Salir): ");
String numero = mi_escaner.nextLine();
float sumando = Float.parseFloat(numero);
if (sumando == 0) {
break;
} else {
suma = suma + sumando;
}
}
catch (Exception e) {
System.out.println("Compruebe datos. Separe decimales con punto.");
}
System.out.println("Suma acumulada: "+suma);
}
System.out.println("Ha introducido 0. La suma total es: "+suma);
}
}Posible salida:
Introduzca un número (0 para Salir):
45
Suma acumulada: 45.0
Introduzca un número (0 para Salir):
567.34
Suma acumulada: 612.34
Introduzca un número (0 para Salir):
2,3
Compruebe datos. Separe decimales con punto.
Suma acumulada: 612.34
Introduzca un número (0 para Salir):
2.3
Suma acumulada: 614.64
Introduzca un número (0 para Salir):
0
Ha introducido 0. La suma total es: 614.64Este bucle se ejecuta indefinidamente hasta que introduzcamos el 0 como valor. Comprobamos si es 0 para salir en ese mismo momento del bucle.
while / continue Nos puede interesar dentro de un bucle while pasar por alto las instrucciones que siguen a continuación de un punto, para regresar de nuevo al principio del bucle (sin salirnos).
import java.util.Scanner;
public class Bucleswhile {
public static void main(String[] args) {
float suma=0;
while (true) {
try {
Scanner mi_escaner = new Scanner(System.in);
System.out.println("Introduzca un número positivo mayor que 0 y menor que 1000 (0 para Salir): ");
String numero = mi_escaner.nextLine();
float sumando = Float.parseFloat(numero);
if (sumando == 0) {
break;
}
else if (sumando<0 | sumando>=1000){
continue;
}
else {
suma = suma + sumando;
}
}
catch (Exception e) {
System.out.println("Compruebe datos. Separe decimales con punto.");
}
System.out.println("Suma acumulada: "+suma);
}
System.out.println("Ha introducido 0. La suma total es: "+suma);
}
}Hemos incorporado al programa anterior una sentencia que comprueba si el número es mayor o igual que 1000. Si lo es, lo ignora y vuelve a preguntar otro número.
Posible ejecución:
Introduzca un número positivo mayor que 0 y menor que 1000 (0 para Salir):
24
Suma acumulada: 24.0
Introduzca un número positivo mayor que 0 y menor que 1000 (0 para Salir):
1278.35
Introduzca un número positivo mayor que 0 y menor que 1000 (0 para Salir):
562.3
Suma acumulada: 586.3
Introduzca un número positivo mayor que 0 y menor que 1000 (0 para Salir):
43.1
Suma acumulada: 629.39996
Introduzca un número positivo mayor que 0 y menor que 1000 (0 para Salir):
0
Ha introducido 0. La suma total es: 629.39996while con listas Podemos recorrer una lista utilizando un bucle while combinado con el tamaño de la lista. Veamos un ejemplo:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Bucleswhile {
public static void main(String[] args) {
List<String> lista_invitados = new ArrayList<>(Arrays.asList("Juana", "Pedro", "Miguela", "Eduardo","Javier"));
int indice=0;
while (indice<lista_invitados.size()) {
System.out.println("Bienvenido "+lista_invitados.get(indice)+". Puedes pasar.");
indice+=1;
}
}
}Resultado:
Bienvenido Juana. Puedes pasar.
Bienvenido Pedro. Puedes pasar.
Bienvenido Miguela. Puedes pasar.
Bienvenido Eduardo. Puedes pasar.
Bienvenido Javier. Puedes pasar.