sentencias de repeticion
TRANSCRIPT
![Page 1: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/1.jpg)
Clase 6
![Page 2: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/2.jpg)
2
Clase 6: Sentencias de Repetición
Después de haber estudiado este capítulo usted podrá:
Implementar sentencias de repetición en su programa utilizando while, do-while y for.
Implementar sentencias de repetición utilizando: while, do-while y for.
Implementar sentencias de control genéricas Realizar sentencias de repetición anidadas Elegir la sentencia de repetición adecuada según el problema Generar números aleatorios Lograr que el usuario interactúe con la máquina en una sesión
SI-NO para continuar ejecutando el programa
![Page 3: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/3.jpg)
3
Definición Las sentencias de repetición son un bloque de
código que son ejecutadas por un cierto número de veces hasta que se cumpla una condición.
Repeticiones controladas por contador: terminan la ejecución del bloque después que este ha sido ejecutado por un número de veces determinado
Repeticiones controladas por centinela: termina la ejecución del bloque después que un valor diseñado como centinela ha sido encontrado.
Las sentencias de repetición son llamadas LOOP o BUCLE.
![Page 4: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/4.jpg)
4
Sentencia while //este programa realiza la suma de los 100 primeros números
int sum = 0, number = 1;
while ( number <= 100 ) {
sum = sum + number;
number = number + 1;
}
System.out.print(“La Suma es: “ + suma);
Estas sentencias son ejecutadas mientras que la variable number sea menor o igual que 100
Estas sentencias son ejecutadas mientras que la variable number sea menor o igual que 100
![Page 5: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/5.jpg)
5
Sintaxis para la sentencia while while ( <expresión booleana> ) {
<sentencia 1><sentencia 1><sentencia n> }
while ( number <= 100 ) {
sum = sum + number;
number = number + 1;
}
Sentencias(loop body)
Sentencias(loop body)
Expresión Booleana Expresión Booleana
![Page 6: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/6.jpg)
6
Flujo de Control while
int sum = 0, number = 1int sum = 0, number = 1
number <= 100 ?number <= 100 ?
falsesum = sum + number;
number = number + 1;
sum = sum + number;
number = number + 1;
true
![Page 7: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/7.jpg)
7
Mas EjemplosSigue sumando números 1, 2, 3, …hasta que la variable sum sea mayor a 1,000,000.
Sigue sumando números 1, 2, 3, …hasta que la variable sum sea mayor a 1,000,000.
Calcula el producto de los 20 primeros enteros
Calcula el producto de los 20 primeros enteros
int sum = 0, number = 1;
while ( sum <= 1000000 ) {
sum = sum + number;
number = number + 1;
}
11
int producto = 1, numero = 1, contador = 20, ultimoNumero;
ultimoNumero = 2 * contador - 1;
while (numero <= ultimoNumero) {
producto = producto * numero;
numero = numero + 2;
}
22
![Page 8: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/8.jpg)
8
Encontrando el Maximo Comun Divisor
Aproximación directa
public int mcdBruteforce(int m, int n) {
// assume m, n >= 1
int menor = Math.min(m, n); int mcd; int i = 1;
while (i <= menor) {
if (m%i == 0 && n%i == 0) { mcd = i; }
i++; }
return mcd;}
![Page 9: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/9.jpg)
9
Encontrando el Maximo Comun Divisor
public int gcd(int m, int n) {
// no importa si n o m // es mayor, este metodo; // trabaja bien // // assume m, n >= 1
int r = n % m;
while (r != 0) {
n = m; m = r; r = n % m; }
return m;}
Solución mas eficiente
![Page 10: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/10.jpg)
10
Ejemplo: Probando datos de ingreso
String inputStr;
int edad;
inputStr = JOptionPane.showInputDialog(null,“Su edad (entre 18 y 90):");
edad = Integer.parseInt(inputStr);
while (edad < 18 || edad > 90) {
JOptionPane.showMessageDialog(null,
“Se ingreso una edad no valida. Por favor vuelva a intentarlo");
inputStr = JOptionPane.showInputDialog(null,“Su edad (entre 18 y 90):");
edad = Integer.parseInt(inputStr);
}
Primera lecturaPrimera lectura
Segunda lecturaSegunda lectura
![Page 11: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/11.jpg)
11
Operadores cortos utiles
suma = suma + numero; suma += numero;Es equivalente a
Operador Uso Significado
+= a += b; a = a + b;
-= a -= b; a = a – b;
*= a *= b; a = a * b;
/= a /= b; a = a / b;
%= a %= b; a = a % b;
![Page 12: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/12.jpg)
12
Tenga cuidado con los errores
1. Cuidado con el error “por uno”
2. Asegúrese que el cuerpo del loop contiene sentencias que eventualmente harán que el loop finalice
3. Si quiere ejecutar el cuerpo del loop N veces, entonces inicialice el contador en 0 y utilice una condicion que evalue contador <N, o inicialice el contador en 1 y evalue contador <=N
![Page 13: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/13.jpg)
13
Loop Error #1 - Loop Infinito
int contador = 1;
while ( contador != 10 ) {
contador = contador + 2;
}
22
int producto = 0;
while ( producto < 500000 ) {
product = product * 5;
}
11 Error Estas sentencias se ejecutaran por siempre. La expresion boolena nunca será falsa.Para solucionar el problema producto debe inicializarse en 1
Error Estas sentencias se ejecutaran por siempre. La expresion boolena nunca será falsa.Para solucionar el problema producto debe inicializarse en 1
Error La expresión boolena nunca sera falsa.Para solucionar el problema count debe ser inicializado en 1
Error La expresión boolena nunca sera falsa.Para solucionar el problema count debe ser inicializado en 1
![Page 14: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/14.jpg)
14
Loop Error #2 – error por uno Objetivo : Ejecute el cuerpo del loop 10 veces
count = 1;
while ( count < 10 ){
. . .
count++;
}
11
count = 0;
while ( count <= 10 ){
. . .
count++;
}
33
count = 1;
while ( count <= 10 ){
. . .
count++;
}
22
count = 0;
while ( count < 10 ){
. . .
count++;
}
44
11 33 y exiben el error por uno.
![Page 15: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/15.jpg)
15
La sentencia do-while
int sum = 0, number = 1;
do {
sum = sum + number;
number++;
} while ( sum <= 100 );
Estas sentencias son ejecutadas hasta que la variable sum sea menor o igual que 100
Estas sentencias son ejecutadas hasta que la variable sum sea menor o igual que 100
![Page 16: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/16.jpg)
16
Sintaxis do-while
do {
sum = sum + number;
number++;
} while ( sum <= 100 );
do
<sentencias>
while ( <expresion booleana> ) ;
Sentencias(loop body)
Sentencias(loop body)
Expresion booleanaExpresion booleana
![Page 17: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/17.jpg)
17
Flujo de Control do-while
int sum = 0, number = 1int sum = 0, number = 1
sum = sum + numbernumber++;
sum = sum + numbernumber++;
sum <= 100sum <= 100true
false
![Page 18: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/18.jpg)
18
Bucle y Control de Media Repetición
Bucle y Control de Media Repeticiόn puede ser utilizado para evaluar la condicion de terminacion de un bucle en medio del cuerpo del bucle.
Es implementado utilizando las palabras reservadas while, if, and break.
![Page 19: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/19.jpg)
19
Ejemplo: Bucle-y-MedioControl
String name;
while (true){
name = JOptionPane.showInputDialog(null, “Tu nombre");
if (name.length() > 0) break;
JOptionPane.showMessageDialog(null, "Ingreso no valido." + “Debe ingresar al menos un caracter.");}
![Page 20: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/20.jpg)
20
Errores en Bucles-y-MedioControl
Ponga atenciόn en dos cosas cuando utilice Bucles-y-MedioControl:
El peligro de un bucle infinito. La expresión booleana del while es true, la cual siempre evaluará a true. Si olvidamos incluir una sentencia if para romper el bucle, terminaremos en un bucle infinito.
Multiple exit points. It is possible, although complex, to write a correct control loop with multiple exit points (breaks). It is good practice to enforce the one-entry one-exit control flow.
![Page 21: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/21.jpg)
21
Bucle: Sentencia break (1/4)int i = 1;int sum = 0;while (sum < 20) { sum += i; ++i;}System.out.println("sum is " + sum);System.out.println("i is " + i);
sum is 21i is 7
int i = 1;int sum = 0;while (sum < 20) { sum += i; if (sum % 2 == 0) break; ++i;}System.out.println("sum is " + sum);System.out.println("i is " + i);
sum is 6i is 3
![Page 22: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/22.jpg)
22
Bucle: Sentencia break (2/4)int i = 1;int sum = 0;while ( true ) { sum += i; if (sum > 10) break; ++i;}System.out.println("sum is " + sum);System.out.println("i is " + i);
sum es 15i es 5
Note: Sin el break, es un bucle infinito!
Trate de evitar el uso de break, a menos que sea necesario.
int i = 0;int sum = 0;while (sum <= 10) { ++i; sum += i;}System.out.println("sum is " + sum);System.out.println("i is " + i);
![Page 23: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/23.jpg)
23
Bucle: Sentencia break (3/4)Random number = new Random();int i;
while (true) { i = number.nextInt(100); System.out.println("i is " + i); if (i >= 80) break;}
i is 43i is 2i is 12i is 95
Random class will be discussed later.
![Page 24: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/24.jpg)
24
Bucle: Sentencia break (4/4) break causa que el control salga del bucle mas interno
en el que esta contenido..
int a = 1;while (a < 5) { int b = 1; while (b < 5) { System.out.println("a is " + a + ", b is " + b); if (b == 2) break; ++b; } ++a;}
a is 1, b is 1a is 1, b is 2a is 2, b is 1a is 2, b is 2a is 3, b is 1a is 3, b is 2a is 4, b is 1a is 4, b is 2
![Page 25: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/25.jpg)
25
Bucle: Sentencia continue (1/2) Algunas veces podríamos querer ir inmediatamente a
la siguiente iteracion, sin ejecutar el resto de las sentencias en el cuerpo del bucle.
Esto puede ser realizado utilizando continue.
Como break, continue solo causa que el control vaya a la siguiente iteracion en el bucle mas interno que lo contiene.
![Page 26: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/26.jpg)
26
Bucle: Sentencia continue(2/2)int i = 0;
while (i <= 6) { ++i; if (i == 3) continue; System.out.println("i is " + i);}
i is 1i is 2i is 4i is 5i is 6i is 7
int i = 1;int sum = 0;while (sum < 20) { sum += i; if (sum % 2 == 0) continue; ++i;}System.out.println("sum is " + sum);System.out.println("i is " + i);
sum is 23i is 6
![Page 27: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/27.jpg)
27
Random Numbers (1/2) Random number generation is discussed in section 3.8 of
your textbook. We learn another way here, using the Random class. Notes:
Need to import java.util.*; Random( ): constructs a new random number generator
Random whose seed is based on the current time. int nextInt(int n): returns the next pseudo-random, from the
interval [0, 1, … n-1], uniformly distributed value of a Random object.
Refer to the API specification for the complete description of class Random.
![Page 28: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/28.jpg)
28
Random Numbers (2/2)import java.util.*;
public class Random1 { public static void main(String[] args) {
Random num = new Random();
for (int i=0; i<5; i++) { System.out.println("Next random number is " + num.nextInt(100)); } }}
Next random number is 48Next random number is 14Next random number is 89Next random number is 7Next random number is 44
![Page 29: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/29.jpg)
29
Diálogo de Confirmación
dialogo de confirmación puede ser utilizado para que el usuario elija si quiere seguir con la ejecución del programa o no.
JOptionPane.showConfirmDialog(null,
/*prompt*/ "Play Another Game?",
/*dialog title*/ "Confirmation",
/*button options*/ JOptionPane.YES_NO_OPTION);
![Page 30: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/30.jpg)
30
Ejemplo: Diálogo de Confirmación boolean sigaJugando = true;int seleccion;
while (sigaJugando){
//codigo que realiza un juego viene aqui // . . .
seleccion = JOptionPane.showConfirmDialog(null, “Quiere volver a jugar?", "Confirmacion", JOptionPane.YES_NO_OPTION);
sigaJugando = (seleccion == JOptionPane.YES_OPTION);}
![Page 31: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/31.jpg)
Adicional
Preguntas de Examen
![Page 32: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/32.jpg)
32
Considere el siguiente código
int i = 1;while (i <= n) { if (i % n == 0) { ++i; }}System.out.println(i);
(a) Cual es la salida si n es 0?(b) Cual es la salida si n es 1?(c) Cual es la salida si n es 3?
![Page 33: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/33.jpg)
33
Que retorna el siguiente método, asumiendo que n es 12345?
public static int metodoX(int n) { int sum = 0; while (n > 0) { sum += n % 100; n /= 100; } return sum;}
A. 9B. 15C. 69D. 123E. 168
![Page 34: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/34.jpg)
34
La sentencia for
int i, sum = 0, number;
for (i = 0; i < 20; i++) {
number = scanner.nextInt( );
sum = sum + number;
}Estas sentencias son ejecutadas 20 veces ( i = 0, 1, 2, … , 19).
Estas sentencias son ejecutadas 20 veces ( i = 0, 1, 2, … , 19).
Utilizamos for cuando sabemos cuantas veces se va a realizar la repetición
![Page 35: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/35.jpg)
35
Syntax sentencia for
for ( i = 0 ; i < 20 ; i++ ) {
number = scanner.nextInt();
sum = sum + number;
}
for ( <inicializacion>; <expresion booleana>; <incremento> ){
<sentencias>
}
InicializacionInicializacion Expresión Booleana
Expresión Booleana IncrementoIncremento
Sentencias(loop body)
Sentencias(loop body)
![Page 36: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/36.jpg)
36
Control Flow of for
i = 0;i = 0;
false
number = . . . ;sum = sum + number;
number = . . . ;sum = sum + number;
true
i ++;i ++;
i < 20 ? i < 20 ?
![Page 37: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/37.jpg)
37
i++ or ++i?
for ( i = 0; i < 20; i++ ) {
...
}
for ( i = 0; i < 20; ++i ) {
...
}
Alguna diferencia?
Aqui es lo mismo…Solo cuando es partede una expresion..si son diferentes
![Page 38: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/38.jpg)
38
Compare for y while
for ( Init ; Expression ; Increment )
Action
Init
while ( Expression ) {
Action
Increment
}
Si realmente odian utilizar WHILEpor alguna razon….pueden reescribirla
![Page 39: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/39.jpg)
39
Sentencia while
//este programa realiza la suma de los 100 primeros numeros
int sum = 0, number = 1;
while ( number <= 100 ) {
sum = sum + number;
number = number + 1;
}
![Page 40: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/40.jpg)
40
Seguimiento de la ejecución (1/12)
for (int i = 0; i < 3; ++i) {System.out.println("i es " + i);
}
System.out.println(“terminamos");
0i
![Page 41: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/41.jpg)
41
Seguimiento de la ejecución(2/12)
for (int i = 0; i < 3; ++i) {System.out.println("i es " + i);
}
System.out.println(“terminamos");
0i
![Page 42: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/42.jpg)
42
Seguimiento de la ejecución(3/12)
for (int i = 0; i < 3; ++i) {System.out.println("i es " + i);
}
System.out.println(“terminamos");
0i
Output:
i es 0
![Page 43: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/43.jpg)
43
Seguimiento de la ejecución(4/12)
for (int i = 0; i < 3; ++i) {System.out.println("i es " + i);
}
System.out.println(“terminamos");
1i
Output:
i es 0
![Page 44: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/44.jpg)
44
Seguimiento de la ejecución(5/12)
for (int i = 0; i < 3; ++i) {System.out.println("i es " + i);
}
System.out.println(“terminamos");
1i
Output:
i es 0
![Page 45: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/45.jpg)
45
Seguimiento de la ejecución(6/12)
for (int i = 0; i < 3; ++i) {System.out.println("i es " + i);
}
System.out.println(“terminamo");
1i
Output:
i es 0i es 1
![Page 46: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/46.jpg)
46
Seguimiento de la ejecución(7/12)
for (int i = 0; i < 3; ++i) {System.out.println("i es " + i);
}
System.out.println(“terminamos");
2i
Output:
i es 0i es 1
![Page 47: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/47.jpg)
47
Seguimiento de la ejecución(8/12)
for (int i = 0; i < 3; ++i) {System.out.println("i es " + i);
}
System.out.println(“terminamos");
2i
Output:
i es 0i es 1
![Page 48: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/48.jpg)
48
Seguimiento de la ejecución(9/12)
for (int i = 0; i < 3; ++i) {System.out.println("i es " + i);
}
System.out.println(“terminamos");
2i
Output:
i es 0i es 1i es 2
![Page 49: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/49.jpg)
49
Seguimiento de la ejecución(10/12)
for (int i = 0; i < 3; ++i) {System.out.println("i es " + i);
}
System.out.println(“terminamos");
3i
Output:
i es 0i es 1i es 2
![Page 50: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/50.jpg)
50
Seguimiento de la ejecución(11/12)
for (int i = 0; i < 3; ++i) {System.out.println("i es " + i);
}
System.out.println(“terminamos");
3i
Output:
i es 0i es 1i es 2
![Page 51: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/51.jpg)
51
Seguimiento de la ejecución(12/12)
for (int i = 0; i < 3; ++i) {System.out.println("i es " + i);
}
System.out.println(“terminamos");
3i
Output:
i es 0i es 1i es 2terminamos
Utilzar siempre i dentro del loop
![Page 52: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/52.jpg)
52
Mas ejemplos
for (int i = 0; i < 100; i += 5)11
i = 0, 5, 10, … , 95 i = 0, 5, 10, … , 95
for (int j = 2; j < 40; j *= 2)22
j = 2, 4, 8, 16, 32 j = 2, 4, 8, 16, 32
for (int k = 100; k > 0; k--) )33
k = 100, 99, 98, 97, ..., 1k = 100, 99, 98, 97, ..., 1
![Page 53: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/53.jpg)
53
Factorial Definition:
int nFactorial = 1;
for (int i = 2; i <= n; ++i) {
nFactorial *= i;
}
1 if 2 1
0 if1!
nn
nn
![Page 54: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/54.jpg)
54
Alcance de Variable Considere:
int valorActual = 2;
for (int i = 0; i < 5; ++i) {
System.out.println(valorActual);
valorActual = valorActual* 2;
}
System.out.println("i is " + i);
Que muestra valor actual al final? Que muestra i?
![Page 55: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/55.jpg)
55
For anidados Es cuando utilizamos un for dentro de otro for.
![Page 56: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/56.jpg)
56
![Page 57: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/57.jpg)
57
Generando la Tabla
int precio;
for (int ancho = 11; ancho <=20, ancho++){
for (int largo = 5, largo <=25, largo+=5){
precio = ancho * largo * 19; //$19 x metro cuadrado System.out.print (" " + precio);
}
//finalizada una fila se va a la siguiente
System.out.println("");
}
INN
ER
OU
TE
R
![Page 58: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/58.jpg)
58
For anidados (1/2)for (int i = 0; i < 3; ++i) {
System.out.println("i is " + i);
for (int j = 0; j < 4; ++j) {System.out.println(" j is " +
j);}
}
i is 0 j is 0 j is 1 j is 2 j is 3i is 1 j is 0 j is 1 j is 2 j is 3i is 2 j is 0 j is 1 j is 2 j is 3
![Page 59: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/59.jpg)
59
For anidados (2/2)for (int i = 0; i < 3; ++i) {
System.out.println("i is " + i);
for (int j = 0; j < i; ++j) {System.out.println(" j is " +
j);}
}
Cual es la salida?
![Page 60: Sentencias de Repeticion](https://reader036.vdocument.in/reader036/viewer/2022081719/557ced7bd8b42ae6078b4f18/html5/thumbnails/60.jpg)
60
Fin Clase 6