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


Section Header
 
+ name := TEST_LOOP_NESTED;
 
- external := `#include <time.h>`;
 
Section Public
 
- main <- (
  + a : ARRAY2[INTEGER];
  + i, j: INTEGER;
 
  `srand(time(NULL))`;
  a := ARRAY2[INTEGER].create(0, 0) to (9, 9);
  0.to 9 do { ii : INTEGER;
    0.to 9 do { jj : INTEGER;
      a.put (`rand()`:INTEGER % 20 + 1) to (ii, jj);
    };
  };
  { i < 10 }.while_do {
    j := 0;
    { j < 10 }.while_do {
      ' '.print;
      a.item(i, j).print;
      (a.item(i, j) = 20).if {
        i := 999;
        j := 999;
      };
      j := j + 1;
    };
    i := i + 1;
    '\n'.print;
  };
  '\n'.print;
);