Read it like a parser:
"If [condition] then execute next statement or block. Well, here we have an open block token, so everything in the block gets executed. And here we have a close block token, OK, that's the end of that block." So it executes an empty statement.
As for what value gets returned, again, read it like a parser. If we enter the first blank block, the next token is an else, which means control flow skips down to after the current if/else chain. If we enter the second blank block, same thing. If we enter the last block, we hit a
return false and return with a value of
Otherwise, we start hitting those close braces and slide all the way down to the next actual statement, which is the next iteration of the
for loop, and we do it all over again. And if we make it all the way through the loop without ever triggering the
return false, then control flow passes to the
return true line, and we return