Por alguna razón no puedo envolver mi cabeza alrededor de esta condición. ¿Puede alguien explicarme como si tuviera cinco años?
Busqué aquí, leí la documentación de MDN, pero siento que me falta algo simple.
while (playerScore !== 5 && cpuScore !== 5)Entonces, && dice que cuando una de estas condiciones se evalúa como falsa, entonces toda la declaración es falsa, ¿correcto? Y el bucle while continúa mientras la condición sea verdadera, ¿verdad?
Eso es absolutamente correcto. El operador && (también conocido como operador "Y") significa que ambas partes de la declaración deben ser verdaderas para que la declaración completa sea verdadera. De lo contrario, toda la afirmación es falsa.
Entonces, siempre que ni la puntuación del jugador ni la puntuación de la CPU sean iguales a 5 (lo que significa que cualquiera de ellos es menor o mayor que 5), el ciclo while continuará una y otra vez.
La confusión es completamente comprensible, especialmente con la existencia de ! operadores (también conocidos como operadores "NOT").
Cada vez que me confundo con la elaboración de declaraciones como estas, trato de dividirlas en los fragmentos más pequeños posibles. Con esta declaración, comenzaría por comprender la primera mitad de la expresión ( playerScore !== 5 ), luego pasaría a la segunda mitad ( cpuScore !== 5 ) y finalmente combinaría los dos.
¡Espero que eso ayude a aclarar las cosas!
(playerScore !== 5 && cpuScore !== 5) significa que si playerScore no es igual al número 5 y cpuScore no es igual al número cinco, la operación continuará.
Entonces, para que su ciclo while continúe, tanto playerScore como cpuScore no deben ser iguales a 5 al mismo tiempo.
!= significa no igual !== significa estrictamente no igual - esto está relacionado con el tipo && significa y (ambas condiciones deben ser verdaderas para que toda la declaración sea verdadera)