Está en la página 1de 7

PROGRAMACIÓN I

UNIVERSIDAD DE CÓRDOBA
INGENIERIA INDUSTRIAL Tutor : Mario Macea Anaya

Sentencias de Iteración o Repetitivas

Hay ocasiones que se requiere que una sentencia compuesta se ejecute varias veces,
posiblemente cambiando los valores de las expresiones contenidas en ésta. Por ejemplo,
supongamos que deseamos crear una tabla del capital acumulado de una cantidad
invertida a una tasa de interés anual y recapitalizado mensualmente. En este ejemplo,
para cada mes es necesario determinar el capital acumulado e imprimir el resultado. Este
proceso se repetirá tantas veces como el número de meses que deseemos tabular. Las
sentencias que nos permiten realizar tal tarea se conocen como sentencias de iteración
o repetitivas. En Java existen tres tipos de sentencias repetitivas: La sentencia while, la
sentencia for y la sentencia do - while.

Sentencia while

La sentencia while nos permite ejecutar una sentencia compuesta, mientras se cumpla
una condición. La sintaxis para esta sentencia es la siguiente:

while(expresión){
sentencia1;
sentencia2;
.
.
Sentencia n;
}
Expresión debe ser de tipo booleano. Sentencia es una sentencia compuesta.

La sentencia while opera de la siguiente manera:

 Primero se evalúa expresión. Si su valor es verdadero, se ejecuta sentencia


y expresión es evaluada de nuevo, repitiéndose el ciclo hasta que expresión
resulta falsa. Cuando esto último ocurre el ciclo termina y el programa continúa
con la siguiente instrucción después del ciclo.

 Si expresión es falsa al principio del ciclo, sentencia no se ejecuta ni una vez.

Ejemplo sobre la sentencia while

Diseñar una clase e implementar sus métodos en java que den solución para los
siguientes problemas:

Dado dos valores enteros positivos X, Y obtener el resultado de elevar el valor de


Y a la potencia x.
PROGRAMACIÓN I
UNIVERSIDAD DE CÓRDOBA
INGENIERIA INDUSTRIAL Tutor : Mario Macea Anaya

El código de la clase:

public class PotenciaN


{
private
int x;
int y;

public PotenciaN()
{
x = 0;
y = 0;
}

public void setX(int a)


{
x = a;
}

public void setY(int b)


{
y = b;
}

public int getX()


{
return x;
}

public int getY()


{
return y;
}

public int obtPotencia()


{
int pt = 1;
int cont = 1;

if (getX()>=0)&&(getY()>=0)
{
while (cont <= getX())
{
pt = pt * getY();
cont = cont + 1;
}
}

return (pt);
}

}
PROGRAMACIÓN I
UNIVERSIDAD DE CÓRDOBA
INGENIERIA INDUSTRIAL Tutor : Mario Macea Anaya

El código de la instancia:

import java.util.*;

public class PpalPotenciaN


{
public static void main(String[] args)
{

PotenciaN pot = new PotenciaN();


Scanner sc = new scanner(system.in);

int nx = 0;
int ny = 0;

System.out.println("Digite Número X");


nx = sc.nextInt();
pot.setX(nx);

System.out.println("Digite Número Y");


ny = sc.nextInt();
pot.setY(ny);

System.out.println(+pot.getY() +" elevado " +pot.getX() +" es: ");

System.out.println(pot.obtPotencia());

Sentencia for

Estructura que repite la ejecución de una o varias sentencias un número fijo de veces
previamente establecido. Necesita una variable de control del bucle que es
necesariamente de tipo entero, ya que el bucle se ejecuta mientras la variable de
control toma una serie consecutiva de valores comprendidos entre dos valores
extremos (inferior y superior).

La sintaxis para esta sentencia es la siguiente:

for([expresión1]; [expresión2]; [expresión3])


{
sentencia 1;
sentencia 2
.
.
sentencia n;
}

Aquí la expresión expresión2 es una expresión booleana y expresión1 y expresión3


son, cada una, una expresión simple o varias expresiones simples separadas por comas.
PROGRAMACIÓN I
UNIVERSIDAD DE CÓRDOBA
INGENIERIA INDUSTRIAL Tutor : Mario Macea Anaya

La sentencia for opera de la siguiente manera:

1. Se evalúa expresión1. Si expresión1 está formada de varias expresiones


simples, éstas se evalúan en secuencia.

2. Se evalúa expresión2. Si el resultado es verdadero entonces se ejecuta la


sentencia compuesta, sentencia y luego se evalúa expresión3. Si
expresión3 está formada de varias expresiones simples, éstas se evalúan en
secuencia.

3. Repite el paso 2 hasta que el resultado de la comparación es falso, en cuyo caso el


programa brinca a la siguiente sentencia después de la sentencia for.

Si inicialmente el valor de expresión2 es falso, la sentencia no se ejecuta ni una sola vez


y el ciclo termina.

En la sentencia for, cualesquiera de las tres expresiones se pueden omitir. En particular si


omitimos expresión2 se considera que es verdadera y tendremos un ciclo infinito.
A continuación se muestran algunas construcciones usando la sentencia for:

 for(i = 0; i < N; i++)


{
... /* Uso más común */
}

 for(i = 0, j = 1; i < N; i++, j += 3)


{
... /* Doble inicialización y doble incremento */
}

 for( ; ; )
{
... /* Un ciclo infinito */
}

Ejemplo sobre la sentencia while

Diseñar una clase e implementar sus métodos en java que den solución para los
siguientes problemas:

Dado dos valores enteros positivos X, Y obtener todo los números primos
comprendidos entre ellos.
PROGRAMACIÓN I
UNIVERSIDAD DE CÓRDOBA
INGENIERIA INDUSTRIAL Tutor : Mario Macea Anaya

El código de la clase:

public class PrimosEntreXyY


{
private
int x;
int y;
public PrimosEntreXyY ()
{
x = 0;
y = 0;
}
public void setX(int a)
{
x = a;
}
public void setY(int b)
{
y = b;
}
public int getX()
{
return x;
}
public int getY()
{
return y;
}

public int obtNroPrimos()


{
int cont;
if (getX()<getY())
{
for ( cont = getX();cont <= getY(); cont++)
{
if (cont % 2 !=0)
{
System.out.println(cont +" Nro Primo");
}
}
}
else
{
for ( cont = getY();cont <= getX(); cont++)
{
if (cont % 2 !=0)
{
System.out.println(cont +" Nro Primo");
}
}
}
return (0);
PROGRAMACIÓN I
UNIVERSIDAD DE CÓRDOBA
INGENIERIA INDUSTRIAL Tutor : Mario Macea Anaya

}
}

El código de la instancia:
import java.util.*;

public class PpalViajes


{
public static void main(String[] args)
{
PotenciaN pot = new PotenciaN();
int nx = 0;
int ny = 0;
Scanner sc = new Scanner(System.in);

System.out.println("Digite Número X");


nx = sc.nextInt();
pot.setX(nx);

System.out.println("Digite Número Y");


ny=sc.nextInt();
pot.setY(ny);

System.out.println("Los Primos entre " +pot.getX() +" y " +pot.getY() +" son:");
System.out.println(pot.obtNroPrimos());

Sentencia do - while

La sentencia do - while es otra variante de la sentencia while cuya sintaxis es la


siguiente:
do {
sentencia 1;
sentencia 2;
.
.
sentencia n;
} while(expresión);

La expresión debe ser de tipo booleano. Sentencia es una sentencia compuesta.

El ciclo do - while opera de la siguiente manera: Primero se ejecuta sentencia y


luego se evalúa expresión, si su valor es verdadero, se ejecuta sentencia y la
expresión se evaluada de nuevo, repitiéndose el ciclo hasta que expresión resulta
falsa. Cuando esto último ocurre el ciclo termina y el programa continúa con la siguiente
instrucción después del ciclo.

La diferencia básica entre el ciclo do - while y el ciclo while es que la sentencia


PROGRAMACIÓN I
UNIVERSIDAD DE CÓRDOBA
INGENIERIA INDUSTRIAL Tutor : Mario Macea Anaya

compuesta en el ciclo do - while se ejecuta por lo menos una vez, ya que la prueba sobre
expresión se realiza hasta que la sentencia compuesta se ha ejecutado; mientras que la
sentencia compuesta en la sentencia while no se ejecutará si expresión es falsa
desde el principio.

Actividad 1: Dado un numero x que indica la cantidad de términos a determinar


para la siguiente serie de números 0,3,6,9,12,15.... Diseñar una clase que nos
permita obtener la sumatoria de los términos de la serie.

Actividad 2: Dados como datos N números entero, Diseñar una clase que nos
permita obtener el número de ceros que entre esos números, además de cuantos
son positivos y negativos.

Actividad 3: Diseñar una clase que nos permita obtener la sumatoria de los gastos
realizados en el último mes, pero teniendo en cuenta que exactamente no sabemos
cuántos fueron.

Actividad 4: Diseñar una clase que nos permita obtener la sumatoria de los números
impares y el promedio de los números pares teniendo como dato de entrada 20
números enteros positivos.

Actividad 5: Diseñar una clase que nos permita calcular el aumento del sueldo para
un grupo de N empleados de una empresa teniendo en cuenta lo siguiente:
Si el sueldo es inferior a 2 SMLV, tiene un aumentos del 15%
Si el sueldo en mayor o igual a 2 SMLV, tiene un aumentos del 12%
Muestre el sueldo del trabajador y el total de la nómina de la empresa teniendo en
cuenta este nuevo aumento.

También podría gustarte