More Or Less es-419 Explainer

Explicación de Más o menos

Objetivo de este acertijo: Imprimir el número aleatorio original value después de imprimir otro mensaje.

Tutorial de la solución: El acertijo comienza creando la variable value y almacenando un número aleatorio. Luego hay una if...else statement que verifica si value es mayor que 5 o no.

Si es mayor que 5, entonces se crea una nueva variable value. Esta es la diferencia entre let y var. Si intentamos usar var value al principio y luego var value nuevamente dentro de la if statement, intentaría sobrescribir el var original. Pero usar let value dentro del bloque es diferente a fuera del bloque. Entonces, para el código dentro del bloque, ya se encuentra let value = 'more than 5' y por eso no necesita buscar nada más, así que ignora let value = pickRandom(5).

Es similar al bloque else. Crea su propio let value, de modo que el value del número aleatorio original se ignora. Pero una vez que if...else deja de ejecutarse, y ahora que el código dentro de los 2 bloques ya no se ejecuta, el nuevo let value que almacenaba un string desaparece. Esto significa que si usas print(value) después del bloque if...else, se imprimirá el número original.

Solución del código de ejemplo:

(Pulsa a continuación para revelar)


let value = pickRandom(10);

if (value > 5) {

let value = 'more than 5';

print(value);

} else {

let value = 'less than or equal to 5';

print(value);

}

print(value);

Conceptos de JavaScript: let, declaraciones if...else

Conceptos de Grasshopper: pickRandom(), print()