--- id: 587d7b86367417b2b2512b3d title: Prevent Infinite Loops with a Valid Terminal Condition challengeType: 1 videoUrl: '' localeTitle: Prevenga los bucles infinitos con una condición de terminal válida --- ## Description
El tema final es el bucle infinito temido. Los bucles son excelentes herramientas cuando necesita que su programa ejecute un bloque de código un cierto número de veces o hasta que se cumpla una condición, pero necesitan una condición de terminal que termine el bucle. Es probable que los bucles infinitos congelen o bloqueen el navegador, y causen un caos general en la ejecución del programa, que nadie quiere. Había un ejemplo de un bucle infinito en la introducción a esta sección - que no tenía condición terminal para salir de la while bucle interior loopy() . ¡NO llames a esta función!
función loopy () {
while (verdadero) {
console.log ("Hola, mundo!");
}
}
Es tarea del programador asegurarse de que finalmente se alcance la condición del terminal, que le indica al programa cuándo salir del código de bucle. Un error es aumentar o disminuir una variable de contador en la dirección incorrecta de la condición del terminal. Otro es restablecer accidentalmente un contador o variable de índice dentro del código de bucle, en lugar de incrementarlo o disminuirlo.
## Instructions
El myFunc() función contiene un bucle infinito debido a que la condición terminal i != 4 Nunca será evaluada como false (y romper el bucle) - i aumentará en 2 de cada pasada, y saltar a la derecha durante 4 desde i es impar para empezar. Fije el operador de comparación en la condición de terminal para que el bucle solo se ejecute para i menor o igual a 4.
## Tests
```yml tests: - text: Su código debe cambiar el operador de comparación en la condición del terminal (la parte media) del bucle for . testString: 'assert(code.match(/i\s*?<=\s*?4;/g).length == 1, "Your code should change the comparison operator in the terminal condition (the middle part) of the for loop.");' - text: Su código debe arreglar el operador de comparación en la condición terminal del bucle. testString: 'assert(!code.match(/i\s*?!=\s*?4;/g), "Your code should fix the comparison operator in the terminal condition of the loop.");' ```
## Challenge Seed
```js function myFunc() { for (let i = 1; i != 4; i += 2) { console.log("Still going!"); } } ```
## Solution
```js // solution required ```