Les estructures de repetició ens permeten executar una acció les vegades que vulga'm però sense escriure-la tantes vegades. Anem a veure exemples on veuràs ràpidament com funciona.
Si vull escriure hola 10 vegades tinc dos opcions:
Sense bucles
document.write('hola', <br>);
document.write('hola', <br>);
document.write('hola', <br>);
document.write('hola', <br>);
document.write('hola', <br>);
document.write('hola', <br>);
document.write('hola', <br>);
document.write('hola', <br>);
document.write('hola', <br>);
document.write('hola', <br>);
Amb bucles
for(var i = 0; i < 10; i++) {
document.write('hola', <br>);
}
Si amb aquest codi estalviem linies de codi, imagina si ho haguerem d'escriure 100 vegades!!!!
El bucle for consta de 3 elements dins del parèntesi:
var i = 0; //Creem una variable i que comença des de 0
i < 10; //Fins que la variable i siga menor que 0, seguirà executant les linies que tinga dins
i++ //Cada vegada que acabe d'executar totes les instruccions de dins del bucle, la i s'incrementarà en 1
Per això l'execució fa el següent:
la i = 0 --> i < 10 ? si --> execute la instrucció d'escriure hola --> es suma 1 a la i
la i = 1 --> i < 10 ? si --> execute la instrucció d'escriure hola --> es suma 1 a la i
...
la i = 9 --> i < 10 ? si --> execute la instrucció d'escriure hola --> es suma 1 a la i
la i = 10--> i < 10 ? no --> isc fora del bucle
Eixa variable i a més, es pot utilitzar. Si en lloc de mostrar hola, mostrem la variable i es mostrarà del 0 al 9. Si volem mostrar de l'1 al 10 tenim 2 opcions:
1) començar i en 1 i acabar en 11
2) a l'hora de mostrar, mostrar la i + 1
for(var i = 0; i < 10; i++) {
document.write(i, '<br>');
}
for(var i = 1; i < 11; i++) {
document.write(i, '<br>');
}
for(var i = 0; i < 10; i++) {
document.write(i + 1, '<br>');
}
De la mateixa manera, si volem recorrer un text per totes les lletres, fem el mateix i utilitzem text.length per anar de 0 fins a la longitud del text. A més si fas text.charAt(num) ens torna la lletra que estiga en la posició num. Prova aquest exemple:
var text = prompt('Escriu un text');
for(var i = 0; i < text.length; i++) {
var lletra = text.charAt(i);
document.write(lletra, ','); //Mostre la lletra i una coma
}
Escriu un programa que demane a l'usuari una paraula i la mostre per pantalla 10 vegades (una vegada en cada línia)
Escriu un programa que demane a l'usuari la seua edat i mostre per pantalla tots els anys des de l'1 fins a la seua edat (separat per comes)
Escriu un programa que demane a l'usuari un número enter positiu i que mostre per pantalla tots els números impars des de l'1 finss eixe número (separats per comes)
Escriu un programa que demane a l'usuari un número enter positiu i mostre per pantalla el compte enrere fins 0 (separats per comes)
Escriu un programa que mostre per pantalla la taula de multiplicar del número que indique l'usuari
Escriu un programa demane un número a l'usuari i que mostre per pantalla si el número indicat és primer. Recorda que un número primer és aquell que no té divisió exacta fins dividir-lo per 1.
Escriu un programa que demane un text a l'usuari i que mostre totes les seues lletres a la inversa (separat per comes).
Escriu un programa que demane un text a l'usuari i una lletra i que mostre la quantitat de vegades que apareix eixa lletra en el text.
Escriu un programa que demane a l'usuari una quantitat a invertir, l'interés anual i el número d'anys, després es mostrarà per pantalla el capital obtés i la inversió cada any que dura la inversió.
Pista 1: El que es genera és la quantitat * (interes / 100)
Pista 2: El total és la quantitat + el generat
Pista 3: Per redondejar una variable X a 2 decimals és:
X = Math.round(X * 100) / 100;
Pista 4: Recorda actualitzar la quantitat en cada iteració