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, ve let value = 'more than 5'
y no necesitar ver más, de modo 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()