Los bucles for nos permiten repetir una acción un numero determinado de veces. Se usan cuando conocemos el inicio y el fin de los límites.
Veamos un ejemplo: una función que nos sume los números desde el uno hasta el número que le digamos. Ej. SUmaNUmeros(3)–>6 (1+2+3)
function sumaNumeros(num){
let total=0
for(let i=1;i<=num;i++){
total+=i
}
return total
}
Para los siguientes ejercicios sólo utilizaremos bucles for
1.- Una función repetirCadena a la que le pasamos una cadena y un número y nos repite la cadena ese número de veces. Ej: repetirCadena(‘hola’,3)->’holaholahola’ repetirCadena(‘*’,5)->’*****’
2.- Una función listaNumeros a la que le pasamos un número y nos devuelve una cadena con la lista desde el 1 hasta el número que le pasemos separadas por coma. Ej: listaNumeros(4)->’1,2,3,4′
3.- Una función factorial que nos devuelva el factorial de un número. Factorial es la multiplicación de todos los números desde el 1 hasta el número. Ej: factorial(4)–>24 (1*2*3*4)
4.- Una función sumaEntre a la que le pasamos dos números y nos suma los números desde el primero hasta el último ambos incluídos. Ej: sumaEntre(4,8)->30 (4+5+6+7+8)
5.- Una función pares a la que le pasemos un número y nos devuelva una cadena con todos los números pares desde el 2 hasta ese número (nos hará falta un if). Ej: pares (11)->’2,4,6,8,10′
function repetirCadena (cadena, num) {
let res = ''
for (let i = 0; i < num; i++) {
res += cadena
}
return res
}
function repetirCadena2 (cadena, num) {
return cadena.repeat(num)
}
function listaNumeros (num) {
let res = ''
for (let i = 1; i <= num; i++) {
res += i + ','
}
return res.slice(0, -1)
}
function factorial (num) {
let res = 1
for (let i = 1; i <= num; i++) {
res *= i
}
return res
}
// SI los numeros no me los dan ordenados asumo que la suma es 0
// Y me quedo tan ancho. Si no que el cliente lo hubiera especificado
function sumaEntre (num1, num2) {
let suma = 0
for (let i = num1; i <= num2; i++) {
suma += i
}
return suma
}
// Por desgracia el cliente me lo ha pedido
// Aprovecho las funciones que me da JS. Math.max y Math.min
function sumaEntreInvertidos (num1, num2) {
let suma = 0
for (let i = Math.min(num1, num2); i <= Math.max(num1, num2); i++) {
suma += i
}
return suma
}
// Por desgracia el cliente me lo ha pedido
// Si no las conociera lo tendría que hacer yo
function sumaEntreInvertidos2 (num1, num2) {
let menor = num1
let mayor = num2
if (num2 < num1) {
menor = num2
mayor = num1
}
let suma = 0
for (let i = menor; i <= mayor; i++) {
suma += i
}
return suma
}
function pares (num) {
let res = ''
for (let i = 1; i <= num; i++) {
if (i % 2 == 0) {
res += i + ','
}
}
return res.slice(0, -1)
}
function pares2 (num) {
let res = ''
for (let i = 2; i <= num; i += 2) {
res += i + ','
}
return res.slice(0, -1)
}