En este ejemplo del ciclo while haremos 3 ejercicios:
1.- Imprimir los números del 1 al 100.
2.- Imprimir los número pares que hay entre el 1 y 100.
3.- Imprimir la suma de números anteriores a un n número (el número lo digita el usuario, si digita 3 se sumará 1+2).
Antes de comenzar los programas explico brevemente el ciclo while:
Como se vió en los diagramas de flujo el ciclo while es una instrucción que se usa para procesos que se repiten muchas veces, el ciclo se ejecuta cuando la condición es verdadera (Puede no ejecutarse nunca).
Su sintaxis es:
while(condición){
instrucciones;
}
Al igual que el condicional if, si el ciclo consta de una sola instrucción pueden omitirse las llaves que abren y cierra ({ y })del bloque de código.
Como primer paso crearé un nuevo proyecto llamado Ciclos, un paquete llamado pqtCiclos y una clase llamada CicloWhileNumeros.
El primer programa nos pide imprimir los números del 1 al 100, lo que hacemos es declarar una variable e iniciarla en 1.
int num=1;
Después decimos en nuestro ciclo si la variable es menor o igual a 100, en caso afirmativo imprimirá el número y se incrementará la variable, y fin del programa.
while (num<=100) {
System.out.println(num);
num++;
}
Nota: Lo imprimimos en consola ya que si se imprime con JOptionPane tendríamos que cerrar 100 ventanas.
package pqtCiclos; public class CicloWhileNumeros { public static void main(String[] args) { int num=1; while (num<=100) { System.out.println(num); num++; } } }
El segundo programa nos pide imprimir los números pares que hay entre el 1 y 100, para ello creo una nueva clase dentro del mismo paquete llamada CicloWhilePares.
Puedo copiar el código del primer programa y hacerle unas modificaciones, lo primero es una condición dentro del ciclo para saber si es par o impar, para ello usamos el operando % (división modular), si el residuo de un número dividido entre 2 es igual a 0, significa que es par y por los mismo lo imprimimos, en cualquiera de los casos incrementamos la variable num.
while (num<=100) {
if(num%2==0){
System.out.println(num);
}
num++;
}
package pqtCiclos; public class CicloWhilePares { public static void main(String[] args) { int num=1; while (num<=100) { if(num%2==0){ System.out.println(num); } num++; } } }
El tercer programa nos pide la sumatoria de los números anteriores a un número digitado por el usuario.
Primeramente creo una nueva clase llamada CicloWhileSumatoria, los tres programas se pueden hacer en una sola clase, solo que los creo siempre en una nueva para separar los códigos.
Una vez creada la clase pedimos el número al usuario, lo pueden hacer por cualquiera de las formas que vimos, yo lo haré con JOptionPane.
int num=Integer.parseInt(JOptionPane.showInputDialog("Digita un número"));
Necesitaré dos variables más, una auxiliar que valla comparandose con num para saber hasta que número debe hacer la sumatoria, y un variable que valla guardando la sumatoria.
int aux=0,sum=0;
Sigue la condición del ciclo while y se va a repetir mientras que aux sea menor que num.
while(aux<num){
sum+=aux;
aux++;
}
Nótese que el incremento siempre se hace dentro del ciclo, esto para no ciclarse, si no se hace el incremento la condición siempre sería verdadera y nunca tendría un fin, ahora la instrucción sum+=aux es lo mismo que sum=sum+aux.
Solo falta imprimir el resultado:
JOptionPane.showMessageDialog(null, "La sumatoria es de: "+sum);
package pqtCiclos; import javax.swing.JOptionPane; public class CicloWhileSumatoria { public static void main(String[] args) { int num=Integer.parseInt(JOptionPane.showInputDialog("Digita un número")); int aux=0,sum=0; while(aux<num){ sum+=aux; aux++; } JOptionPane.showMessageDialog(null, "La sumatoria es de: "+sum); } }