let n = 5; for (let a = 1, b = Math.pow(2, a); b <= n; a++) { console.log(b); } No entiendo por qué b no aumenta a que aumenta a. ¿Tengo que volver a pasar a a b de alguna manera?
Si no hay forma de hacer que este ciclo funcione de esta manera, ¿alguien puede decirme cómo podría reescribirlo para que funcione?
Una vez que se inicializa b , su código nunca lo cambia, por lo que la condición del bucle siempre es verdadera.
podrías usar
let n = 5; for (b = 2; b <= n; b*=2) { console.log(b); }Puede hacer que funcione como se muestra a continuación. Es más probable que su caso se ajuste al ciclo while o do while while.
let n = 5; let a = 1; while(powToA(a)<=n) { console.log(powToA(a)); a++; } function powToA(a) { return Math.pow(2, a); }b es de tipo de valor, no de tipo de referencia. Por lo tanto, actualizar a no actualizará automáticamente el valor de b
Tienes que actualizarlo manualmente.
for (let a = 1,b =Math.pow(2,a); b <= n; a++,b=Math.pow(2,a)) { console.log(a); }