Temas:
Ejercicio 1: ¿Qué despliega el siguiente programa?
Solución del ejercicio: el programa despliega 6. Primero se evalúa
x+1, que es 5+1, es decir 6. Luego se almacena el resultado 6 en
la variable x.
int x= 5;
x= x+1;
println(x);
Moralejas:
Ejercicio 2: hacer un programa que sume 3 valores ingresados por el usuario.
Diálogo:
? 3
Total= 3
? 10
Total= 13
? 1
Total= 14
Es fácil modificar este programa para que ahora sume 20 números,
repitiendo las 3 últimas líneas tantas veces como sea necesario.
¿Pero qué pasa si se desconoce la cantidad de valores que desea
sumar el usuario?
int suma= 0;
int num;
print("? ");
num= readInt(); suma= suma+num;
print("Total= "); println(suma);
print("? ");
num= readInt(); suma= suma+num;
print("Total= "); println(suma);
print("? ");
num= readInt(); suma= suma+num;
print("Total= "); println(suma);
? 3
Total= 3
? 10
Total= 13
? 1
Total= 14
? 100
Total= 114
? 0
Fin!
(Ver el programa completo en Suma.java.)
int suma= 0;
int num;
print("? ");
num= readInt();
while (num!=0) {
suma= suma+num;
print("Total= "); println(suma);
print("? ");
num= readInt();
}
println("Fin!");
La instrucción while es una instrucción de control y repite la ejecución de una o más instrucciones una y otra vez, mientras la condición encerrada entre () sea verdadera.
Sintaxis:
Semántica:
La instrucción while se ejecuta de la siguiente manera:
Ejecución paso a paso: junto con la traza de las instrucciones
que se van ejecutando, se debe ir indicando lo que aparece en pantalla
y el contenido de las variables.
(1) int suma= 0;
(2) int num;
(3) print("? ");
(4) num= readInt();
(5) while (num!=0) {
(6) suma= suma+num;
(7) print("Total= "); println(suma);
(8) print("? ");
(9) num= readInt();
(10) }
(11) println("Fin!");
(1) suma= 0 (5) verdadera
(2) (6) suma= 14
(3) (7) y (8)
(4) num= 3 (9) num= 100
(5) verdadera (5) verdadera
(6) suma= 3 (6) suma= 114
(7) y (8) (7) y (8)
(9) num= 10 (9) num= 0
(5) verdadera (5) falsa
(6) suma= 13 (10)
(7) y (8)
(9) num= 1
(1) int x= 15;
(2) int y= 24;
(3) while (x!=y) {
(4) if (x>y)
(5) x= x-y;
(6) else
(7) y= y-x;
(8) }
(9) println(x);
El diagrama de flujo es:
Solución:
(1) x= 15 (3) v
(2) y= 24 (4) f
(3) v (7) y= 3
(4) f (3) v
(7) y= 9 (4) v
(3) v (5) x= 3
(4) v (3) f
(5) x= 6 (9)
Ejercicio propuesto:
Ejecute paso a paso el siguiente programa:
int n= 4;
double f= 1.0;
int i= 1;
while (i<=n) {
f= f*i;
i= i+1;
}
println(f);