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


class Main
{
  public static Void main ()
  {
    rows := 10
    cols := 10
    // create and fill an array of given size with random numbers
    Int[][] array := [,]
    rows.times
    {
      row := [,]
      cols.times { row.add(Int.random(1..20)) }
      array.add (row)
    }
    // now do the search
    try
    {
      for (i := 0; i < rows; i++)
      {
        for (j := 0; j < cols; j++)
        {
          echo ("now at ($i, $j) which is ${array[i][j]}")
          if (array[i][j] == 20) throw (Err("found it"))
        }
      }
    }
    catch (Err e)
    {
      echo (e.msg)
      return // and finish
    }
    echo ("No 20")
  }
}