freeCodeCamp/curriculum/challenges/spanish/02-javascript-algorithms-an.../debugging/prevent-infinite-loops-with...

2.8 KiB

id title challengeType videoUrl localeTitle
587d7b86367417b2b2512b3d Prevent Infinite Loops with a Valid Terminal Condition 1 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

tests:
  - text: Su código debe cambiar el operador de comparación en la condición del terminal (la parte media) del bucle <code>for</code> .
    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 <code>for</code> 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

function myFunc() {
  for (let i = 1; i != 4; i += 2) {
    console.log("Still going!");
  }
}

Solution

// solution required