Repeticiones
Una estructura de repeticin permite al programador especificar que se debe repetir una accin mientras cierta condicin sea verdadera. En algn momento la condicin ser falsa y en ese momento la repeticin terminar y se ejecutar la siguiente instruccin despus de la estructura de repeticin.
Repeticiones
Existen tres formas diferentes de representar la estructura de repeticin: for while do while
Instruccin for
for (inicializacion; condicion; incremento) { sentencias }
Instruccin for
La ejecucin del ciclo for comienza con la instruccin de inicializacin que, normalmente, suele realizar la inicializacin de una variable de control, incluyendo su declaracin. A continuacin se comprueba la condicin, cuyo resultado debe ser siempre de tipo boolean; en caso de que el resultado sea true, se ejecutarn las instrucciones delimitadas por el bloque de llaves {}, despus se ejecutar la instruccin de incremento y volver a comprobarse la condicin.
public class Factorial1 { public static void main (String[] args) { long p=5; // factorial a calcular long r=1; // resultado for (int i=1; i<=p; i++) { r *= i; } System.out.println(El factorial de +p+ es +r); } }
Instruccin while
while (condicion) { sentencias }
public class Factorial2 { public static void main (String[] args) { long p=5; // factorial a calcular long r=1; // resultado int i=1; // contador de repeticiones while (i<=p) { r *= i; i++; } System.out.println(El factorial de +p+ es +r); } }
Instruccin do while
do { sentencias } while (condicion);
public class Factorial3 { public static void main (String[] args) { long p=5; // factorial a calcular long r=1; // resultado int i=1; // contador de repeticiones do { r *= i; i++; } while (i<=p) ; System.out.println(El factorial de +p+ es +r); } }
Problema
A una clase de diez estudiantes se les aplic un examen. Las calificaciones son nmeros enteros en el rango de 0 a 100. Determinar el promedio de la clase para este examen.
import java.util.Scanner; public class Promedio1 { public static void main(String args[]) { int valor; int promedio; int suma = 0; int repeticiones = 10; Scanner leer = new Scanner(System.in);
for (int contador=1;contador<=repeticiones;contador++) { System.out.print("Escriba el valor "+contador+": "); valor = leer.nextInt(); suma += valor; } promedio = suma / repeticiones; System.out.println("El promedio es: "+promedio);
import java.util.Scanner; public class Promedio2 { public static void main(String args[]) { int valor; int promedio; int suma = 0; int contador =1; int repeticiones = 10; Scanner leer = new Scanner(System.in);
while (contador<=repeticiones) { System.out.print("Escriba el valor "+contador+": "); valor = leer.nextInt(); suma += valor; contador++; } promedio = suma / repeticiones; System.out.println("El promedio es: "+promedio);
import java.util.Scanner; public class Promedio3 { public static void main(String args[]) { int valor; int promedio; int suma = 0; int contador =1; int repeticiones = 10; Scanner leer = new Scanner(System.in);
do { System.out.print("Escriba el valor "+contador+": "); valor = leer.nextInt(); suma += valor; contador++; } while (contador<=repeticiones); promedio = suma / repeticiones; System.out.println("El promedio es: "+promedio);
Problema
Desarrollar un programa que calcule el promedio de calificaciones de una clase para un nmero indeterminado de estudiantes. El usuario escribe calificaciones hasta que se han introducida todas, despus escribe un valor centinela para indicar que no hay ms calificaciones. El valor centinela debe elegirse de tal forma que no pueda confundirse con un valor de entrada permitido.
import java.util.Scanner; public class Promedio4 { public static void main(String args[]) { int valor; int promedio; int suma = 0; int contador; Scanner leer = new Scanner(System.in); System.out.print("Escriba el valor inicial: "); valor = leer.nextInt();
for (contador=0;valor>=0;contador++) { suma += valor; System.out.print("Escriba el valor "+(contador+2)+": "); valor = leer.nextInt(); } if (contador>0) { promedio = suma / contador; System.out.println("El promedio es: "+promedio); }
import java.util.Scanner; public class Promedio5 { public static void main(String args[]) { int valor; int promedio; int suma = 0; int contador =0; Scanner leer = new Scanner(System.in); System.out.print("Escriba el valor inicial: "); valor = leer.nextInt();
while (valor>=0) { suma += valor; contador++; System.out.print("Escriba el valor "+(contador+1)+": "); valor = leer.nextInt(); } if (contador>0) { promedio = suma / contador; System.out.println("El promedio es: "+promedio); }
import java.util.Scanner; public class Promedio6 { public static void main(String args[]) { int valor; int promedio; int suma = 0; int contador =0; Scanner leer = new Scanner(System.in);
do { System.out.print("Escriba el valor "+(contador+1)+": "); valor = leer.nextInt(); if (valor>=0) { suma += valor; contador++; } } while (valor>=0); if (contador>0) { promedio = suma / contador; System.out.println("El promedio es: "+promedio); }