0% encontró este documento útil (0 votos)
7 vistas34 páginas

JavaScript 06 - Bucles

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
7 vistas34 páginas

JavaScript 06 - Bucles

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 34

06 - Bucles

Estructuras de control: iteraciones o bucles


Índice
 El bucle

 Tipos de bucles
 El bucle while

 do while

 for

 Ejemplos de while, do while y for

 break y continue

 Bucles infinitos
 Prácticas

ALBERT BASSONS 2
Bucles
 Un bucle o ciclo es la repetición de una serie de
instrucciones, hasta que la condición asignada a dicho bucle
deje de cumplirse.

 Es utilizado para hacer una acción repetida sin tener que


escribir varias veces el mismo código.

 Ahorra tiempo al programador, deja el código más claro y


facilita futuras modificaciones.

ALBERT BASSONS 3
Ejemplo
 Imaginemos que queremos
sumar los números de n a m.

 Para 1 y 10, tendremos que


sumar 1+2+3+4+5+6+7+8+9+10
= 55.

ALBERT BASSONS 4
Ejemplo

ALBERT BASSONS 5
Bucles
 Existen tres tipos básicos de bucle, aunque siempre es
posible intercambiar uno por otro añadiendo o quitando
algunas instrucciones.

 Los tres tipos son:


 El bucle while
 El bucle do… while
 El bucle for

ALBERT BASSONS 6
Bucles

 En muchos lenguajes existen también diversos tipos de bucles


variantes del for, como el foreach, for…in, for…as etc.

 En JS tendremos for…in y for each…in que veremos en


las transparencias sobre objetos.

ALBERT BASSONS 7
El bucle while

while(condición){

acción;
acción
acción
acción;
… ...
}

cierto

falso

ALBERT BASSONS 8
El bucle while

Observa cómo se inicializa la


variable inductora del bucle (i)
y cómo se modifica en cada
iteración, de forma que en
algún momento dejará de
cumplirse la condición.

ALBERT BASSONS 9
El bucle while

 Al dibujar diagramas de flujo, la


notación mostrada anteriormente
para el bucle while puede resultar acción
acción
liosa, especialmente con bucles …
anidados.

 Podemos variar la notación, siempre


y cuando se siga comprendiendo el
diagrama.

ALBERT BASSONS 10
El bucle do while

do {

acción; acción;
acción;
… acción;
...

} while(condición);

cierto

falso

ALBERT BASSONS 11
El bucle do while

ALBERT BASSONS 12
El bucle do while
 La diferencia entre while y do while es que, en el
segundo, siempre se ejecutan las acciones al menos una vez,
puesto que la comprobación se realiza al final.

acción;
acción;
acción …
acción

cierto
cierto

falso falso

ALBERT BASSONS 13
El bucle for

acción;
acción; for(init var; condición; incremento){

incremento; acción;
acción;
...

}
cierto

falso

ALBERT BASSONS 14
El bucle for

 La mayoría de las veces, podemos interpretar las tres


sentencias que componen el for como:

“Desde” “Mientras” Variación


por iteración

for(init var; condición; incremento){


acción;
acción;
...
}

ALBERT BASSONS 15
El bucle for

ALBERT BASSONS 16
El bucle for
 Los bucles for permiten gran variedad de combinaciones.
Piensa qué imprimen los siguientes bucles y luego pruébalos:

ALBERT BASSONS 17
Ámbito o alcance
 La variable usada para llevar el
control de las iteraciones
(variable inductora) muchas
veces suele tener ámbito de
bloque.

 Sin embargo, podemos


extender el ámbito o usar
variables que ya existían en
ámbitos de orden superior.

ALBERT BASSONS 18
Bucle infinito
 En los bucles hay que tener cuidado
en modificar la variable inductora y
no provocar accidentalmente bucles
infinitos.

 Un bucle infinito es el que no acaba


nunca.

 Normalmente son debidos a errores


de programación, aunque puede
haber casos en los que nos
interesen.

ALBERT BASSONS 19
Bucle infinito
Error de programación

Parece que se pretendía un


bucle de 0 a 99

ALBERT BASSONS 20
Bucle infinito
 Podemos provocar bucles infinitos de forma intencionada :

ALBERT BASSONS 21
Bucles anidados
 Observa el siguiente ejemplo de bucles anidados, he omitido
las llaves de abrir y cerrar bloques:

 ¿Qué hace este código? Intenta analizarlo a mano y escribe


en papel lo que va sucediendo en cada paso.

ALBERT BASSONS 22
Break
 break detiene la ejecución del bucle o bloque en el que se
ejecuta.

 Podemos usarlo para forzar salidas de bucles en caso de que


se cumplan unas condiciones concretas, que no tengan que ver
con la variable inductora.

 Si el break se encuentra en un bucle anidado, se detiene la


ejecución del bucle interno, pero no la del externo.

ALBERT BASSONS 23
Break

ALBERT BASSONS 24
Continue
 Continue detiene la actual iteración del bucle y prosigue con la
siguiente.

 A efectos prácticos, podemos decir que “se salta” el código que


tiene por debajo en la iteración actual.

ALBERT BASSONS 25
Ejercicios
Bucles
Ejercicios
1. Haz un programa que sume los 100 primeros números naturales
(sin utilizar la fórmula de Gauss). Necesitarás al menos dos
variables para poder hacerlo.

2. Haz un programa que muestre los 10 primeros múltiplos de un


número dado.

Por ejemplo, si nos dan el 5, mostrará: 5, 10, 15, 20, 25, 30, 35,
40, 45, 50

ALBERT BASSONS 27
Ejercicios
3. Realiza un programa que calcule el factorial de un número dado
.
Se calcula de la siguiente forma:

ALBERT BASSONS 28
Ejercicios

4. Escribe un programa que nos


diga todos los divisores de un
número n, introducido por el
usuario.

Básicamente, intenta dividir el


número n por 2,3,4… y si el resto
de la división es 0, imprime ese
número. Piensa en usar el
operador módulo (%).

ALBERT BASSONS 29
Ejercicios
5. Haz un programa que, a partir de dos números enteros “f” y
“c” introducidos por formulario, cree una tabla HTML con “f”
filas y “c” columnas como la que se muestra en la imagen:

Opcionalmente, puedes hacer también que las filas pares e impares


tengan formatos diferentes e introducir una fila de cabecera.

ALBERT BASSONS 30
Ejercicios
6. Modifica el ejemplo de las tablas de multiplicar para conseguir que
las tablas sean realmente tablas HTML (<table><tr><td>…).

ALBERT BASSONS 31
Ejercicios

7. Realiza un programa que calcule el resultado de elevar un


número a otro. Solamente debe funcionar para números
enteros y se debe tener en cuenta que cuando el exponente
es negativo, el cálculo es diferente.

Debéis realizar cálculos a mano y con la aplicación para validar


el correcto funcionamiento. No os olvidéis de las fases de
análisis, diseño y prueba.

No se puede usar Math.pow(); así que ni lo preguntéis 

ALBERT BASSONS 32
Ejercicios
8. Realiza un programa que nos diga si un número introducido en
un input es primo o no.

Un número es primo si solamente es divisible por uno y por sí mismo.

Puedes hacer un bucle que vaya dividiendo el número por 2,3,4,5…


Si el resto de alguna de las divisiones es 0, el número no es primo.

Estos son los primos del 1 al 99 para validar:

ALBERT BASSONS 33
Ejercicios
9. Crea una pequeña aplicación para calcular la posición de un
vehículo (metros) en función del tiempo (segundos).

Se tiene que poder elegir si se trata de MRU o MRUA, indicando


todos los parámetros necesarios en cada caso (se deberá
deshabilitar el input destinado a la aceleración en el caso del
MRU).

El tiempo se debe indicar dos veces: tiempo inicial y tiempo


final; mostrando los resultados segundo a segundo de uno a
otro.

ALBERT BASSONS 34

También podría gustarte