The aim of this puzzle: Print out the original random number value
after printing another message.
Walkthrough of the solution: The puzzle begins by creating the value
variable and storing a random number. Then there is an if...else
statement that checks if the value
is greater than 5 or not.
If it is greater than 5
, then a new value
variable is created. This is the difference between let
and var
. If we tried to use var value
in the beginning, and then var value
again inside the If Statement, it would try to overwrite the original var
. But using let
the value
inside the block is separate from the one outside the block. So, to the code inside the block, it sees the let value = 'more than 5'
and it doesn’t need to look any further so it ignores the let value = pickRandom(5)
.
It’s similar for the else
block. It creates its own let value
so that the original random number value
is ignored. But once the if...else
is done running, and now the code inside the 2 blocks are not running anymore, the new let value
that was storing a string is gone. That means if you use print(value)
after the if...else
block, then it will print out the original number.
Sample code solution:
(Tap below to reveal)
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);
JavaScript Concepts: let
, if...else
statements
Grasshopper Concepts: pickRandom()
, print()