Programming
T02-007- 03- Estructuras Repetitivas: while
Enunciado
while
Mientras que el bucle
fores un bucle controlado por contador, en el que se conoce previamente el número de veces que se tienen que repetir las instrucciones que forman el curso del bucle, el buclewhilees un bucle controlado por condición, en el que las instrucciones del cuerpo del bucle se ejecutan mientras la condición se evalúe como cierta.Es imprescindible que en el interior del bucle
whilese realice alguna acción que modifique la condición que controla la ejecución del mismo, en caso contrario estaríamos ante un bucle infinito.
Sintaxis:
while (condición) {
sentencia1;
sentencia2;
…;
sentenciaN;
}Funcionamiento
Mientras la condición sea cierta, el bucle se repetirá, ejecutando la/s instrucción/es de su interior. En el momento en el que la condición no se cumpla, el control del flujo del programa pasará a la siguiente instrucción que exista justo detrás del bucle while.
La condición se evaluará siempre al principio, y podrá darse el caso de que las instrucciones contenidas en él no lleguen a ejecutarse nunca si no se satisface la condición de partida.
Ejemplo:
En el siguiente ejemplo, utilizamos un bucle while para escribir la tabla de multiplicar de un número.
// Declaración e inicialización de variables
int numero = 7;
int contador;
int resultado=0;
//Salida de información
System.out.println ("Tabla de multiplicar del " + numero);
System.out.println (".............................. ");
//Utilizamos ahora el bucle while
contador = 1; //inicializamos la variable contadora
while (contador <= 10) //Establecemos la condición del bucle
{
resultado = contador * numero;
System.out.println(numero + " x " + contador + " = " + resultado);
//Modificamos el valor de la variable contadora, para hacer que el
//bucle pueda seguir iterando hasta llegar a finalizar
contador++;
}Ejercicio:
Haz un programa que solicite al usuario un número entero positivo e indique cuántos números enteros consecutivos se necesitan sumar, a partir del número 1, para alcanzar dicha cantidad.
Solución
package aleatorio;
import java.util.Scanner;
public class Aleatorio {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
int contador = 1;
int suma = 0;
int sumaIncognita;
Scanner sc = new Scanner(System.in);
sumaIncognita = sc.nextInt();
// Bucle que suma enteros hasta alcanzar la suma incógnita
while (suma < sumaIncognita) {
suma = suma + contador++;
}
// Muestra por pantalla el resultado
System.out.println(--contador);
}
}
Input
10
20
Output
4
6

