RosettaCodeData/Task/Loops-Break/Sather/loops-break.sa

30 lines
555 B
Plaintext

-- help class for random number sequence
class RANDOM is
attr seed:INT;
create(seed:INT):SAME is
res:RANDOM := new;
res.seed := seed;
return res;
end;
-- this code is taken from rand's man (C)
next:INT is
seed := seed * 1103515245 + 12345;
return (seed/65536) % 32768;
end;
end;
class MAIN is
main is
a, b :INT;
rnd:RANDOM := #(1);
loop
a := rnd.next % 20;
#OUT + a + "\n";
if a = 10 then break!; end; -- here we break
b := rnd.next % 20;
#OUT + b + "\n";
end;
end;
end;