Show a nested loop which searches a two-dimensional array filled with random numbers uniformly distributed over 



[
1
,
…
,
20
]


{\displaystyle [1,\ldots ,20]}

.

The loops iterate rows and columns of the array printing the elements until the value 



20


{\displaystyle 20}

 is met.

Specifically, this task also shows how to break out of nested loops.



Related tasks

   Loop over multiple arrays simultaneously
   Loops/Break
   Loops/Continue
   Loops/Do-while
   Loops/Downward for
   Loops/For
   Loops/For with a specified step
   Loops/Foreach
   Loops/Increment loop index within loop body
   Loops/Infinite
   Loops/N plus one half
   Loops/Nested
   Loops/While
   Loops/with multiple ranges
   Loops/Wrong ranges


 
sink find20
  def a: $;
  1 -> #
  when <..$a::length> do def i: $;
    '$#10;' -> !OUT::write
    1 -> \(
      when <$a($i)::length~..> do $i + 1 !
      otherwise def j: $;
        def val: $a($i;$j);
        ' $val;' -> !OUT::write
        $val -> \(<~=20> $j + 1 ! \) -> #
    \) -> #
end find20
 
[1..10 -> [1..10 -> 20 -> SYS::randomInt -> $ + 1]] -> !find20
 