44 lines
931 B
Plaintext
44 lines
931 B
Plaintext
/**
|
|
Loops/Nested in Neko
|
|
Tectonics:
|
|
nekoc loops-nested.neko
|
|
neko loops-nested.neko
|
|
*/
|
|
|
|
var random = $loader.loadprim("std@random_new", 0)();
|
|
var random_int = $loader.loadprim("std@random_int", 2);
|
|
|
|
var values = $amake(10);
|
|
var row = 0;
|
|
var col = 0;
|
|
|
|
while row < 10 {
|
|
values[row] = $amake(10);
|
|
col = 0;
|
|
while col < 10 {
|
|
values[row][col] = random_int(random, 20) + 1;
|
|
col += 1;
|
|
}
|
|
row += 1;
|
|
}
|
|
|
|
/* Look for a 20 */
|
|
/*
|
|
To break out of nested loops, (without using labels and $goto),
|
|
Neko needs the value of the inner loop(s).
|
|
The break statement sets the return value of a loop expression.
|
|
Without a break, the value of a loop expression is unspecified.
|
|
*/
|
|
var inner;
|
|
row = 0;
|
|
while row < 10 {
|
|
col = 0;
|
|
inner = while col < 10 {
|
|
$print("values[", row, "][", col, "] = ", values[row][col], "\n");
|
|
if values[row][col] == 20 break true;
|
|
col += 1;
|
|
}
|
|
if $istrue(inner) break;
|
|
row += 1;
|
|
}
|