Estoy tratando de lograr 3,4,5 en salida. Pero, obtengo solo 3,5. Está saltando/saltando un número. No sé por qué. Dado mi código a continuación. Ayúdame a corregir el error y hazme saber por qué sucede y qué estoy haciendo como error.
Rendimiento esperado,
3 4 5la salida que estoy obteniendo,
3 5mi código,
var input1, input2; input1 = Number(2); input2 = Number(5); for(let i=input1;i<input2;i++) { i=i+1; console.log(i); }Está incrementando i dentro del cuerpo del bucle for aunque ya lo hace por usted.
input1 también debe ser 3 .
Usar:
var input1, input2; input1 = Number(3); input2 = Number(5); for (let i = input1; i <= input2; i++) { console.log(i); }El bucle for ya incrementa i por ti. El ciclo que escribiste se ejecuta en la siguiente ruta, yendo de 1 -> 2 -> 3 -> 4 -> 2 -> 3 y se repite a menos que la verificación en 3 sea falsa:
for( let i=input1; // 1. Declare initial value [i] i<input2; // 3. Check if [i] < [input2] i++ // 4. increment [i] by 1 ) { i=i+1; // 2. Run the contents of the loop body console.log(i); }Eso significa
// First iteration i = input1 // 1. i = Number(2); i = i + 1; // 2. i = 2 + 1; console.log(i) // 2. console.log(3); i < input2 ? // 3. Check if i is smaller than input2. End loop if not i++; // 4. Increment i so i = 4 // Second iteration i = i + 1; // 2. i = 4 + 1; console.log(i) // 2. console.log(5); i < input2 ? // 3. Check if i is smaller than input2. End loop if not // End loop since i < input2 is not trueEstás incrementando la variable 'i' dos veces
for(let i=input1;i<input2;i++) {} i=i+1;Entonces tu variable 'i' se incrementará con 2