¿Qué es la estructura while
en programación?
El bucle while
es una estructura de repetición que se usa para repetir un bloque de código mientras se cumpla una condición.
Características principales:
- Evalúa la condición primero. Si es verdadera, entra en el bucle.
- Si la condición es falsa desde el principio, no se ejecuta nada del interior del bucle.
- Es útil cuando no sabemos cuántas veces hay que repetir el código, pero sí sabemos la condición para seguir.
Sintaxis básica:
while (condición) {
// código que se repite
}
Ejemplo:
int i = 1;
while (i <= 5) {
System.out.println(i);
i++;
}
¿Qué hace este código?
- Empieza con
i = 1
. - Mientras
i <= 5
, imprime el valor dei
y luego lo incrementa. - Termina cuando
i
vale 6.
Salida:
1
2
3
4
5
¡Importante!
Dentro del bucle debe haber algo que cambie la condición. Si no, el bucle nunca se detendrá (bucle infinito).
Por ejemplo:
while (true) {
System.out.println("¡Nunca termina!");
}
☠️ Esto imprime sin parar y puede bloquear el programa.
Actividades de programación
Actividad 1: Contar hasta 10
Mostrar los números del 1 al 10 usando while
.
public class WhileContarHastaDiez {
public static void main(String[] args) {
int i = 1;
while (i <= 10) {
System.out.println(i);
i++;
}
}
}
Actividad 2: Sumar números hasta que se ingrese 0
Pedir al usuario números y sumarlos hasta que escriba 0. Usa Scanner
y una variable acumuladora.
import java.util.Scanner;
public class WhileSumarNumeros {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int numero, suma = 0;
System.out.println(“Introduce números (0 para terminar): “);
numero = scanner.nextInt();
while (numero != 0) {
suma += numero;
numero = scanner.nextInt();
}
System.out.println(“La suma total es: ” + suma);
}
}
Actividad 3: Validar contraseña
Pedir al usuario que introduzca una contraseña. Si no es correcta, volver a pedirla. Usa equals()
y compara con una contraseña guardada como "java123"
.
import java.util.Scanner;
public class WhileValidarContrasena {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String contrasenaCorrecta = “java123”;
String entrada;
System.out.println(“Introduce la contraseña:”);
entrada = scanner.nextLine();
while (!entrada.equals(contrasenaCorrecta)) {
System.out.println(“Incorrecta. Intenta de nuevo:”);
entrada = scanner.nextLine();
}
System.out.println(“¡Acceso concedido!”);
}
}
Actividad 4: Adivina el número
Generar un número aleatorio del 1 al 100 y pedir al usuario que lo adivine. Dar pistas de “mayor” o “menor”. Usa Math.random()
y while
para repetir hasta que acierte.
import java.util.Scanner;
public class WhileAdivinaNumero {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int numeroSecreto = (int)(Math.random() * 100) + 1;
int intento;
System.out.println(“Adivina el número entre 1 y 100:”);
intento = scanner.nextInt();
while (intento != numeroSecreto) {
if (intento < numeroSecreto) {
System.out.println(“Más alto!”);
} else {
System.out.println(“Más bajo!”);
}
intento = scanner.nextInt();
}
System.out.println(“¡Correcto! El número era ” + numeroSecreto);
}
}
Actividad 5: Contar letras hasta que se escriba una vocal
Leer letras por teclado hasta que el usuario escriba una vocal (a, e, i, o, u
). Usa char
o String
, y verifica con equalsIgnoreCase()
o comparaciones.
import java.util.Scanner;
public class WhilwHastaVocal {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String letra;
System.out.println(“Escribe letras. Termina cuando introduzcas una vocal:”);
letra = scanner.nextLine();
while (!esVocal(letra)) {
letra = scanner.nextLine();
}
System.out.println(“¡Has escrito una vocal!”);
}
public static boolean esVocal(String letra) {
return letra.equalsIgnoreCase(“a”) || letra.equalsIgnoreCase(“e”) ||
letra.equalsIgnoreCase(“i”) || letra.equalsIgnoreCase(“o”) ||
letra.equalsIgnoreCase(“u”);
}
}