RosettaCodeData/Task/Loops-Wrong-ranges/JavaScript/loops-wrong-ranges.js
2026-04-30 12:34:36 -04:00

29 lines
813 B
JavaScript

function looptest(start, stop, step) {
let a = [];
try {
for(let i = start; i <= stop; i += step) {
a.push(i);
if (a.length == 10) {
break;
}
}
return a;
} catch {
return "Not allowed";
}
}
let test_cases = {"Normal": [-2, 2, 1],
"Zero step": [-2, 2, 0],
"Steps away from stop value": [-2, 2, -1],
"Step value > stop value": [-2, 2, 10],
"Start > stop, positive step": [2, -2, 1],
"Start = stop, positive step": [2, 2, 1],
"Start = stop, negative step": [2, 2, -1],
"Start = stop, zero step": [2, 2, 0],
"Start, stop, step all zero": [0, 0, 0]}
for (const property in test_cases) {
let result = looptest(...test_cases[property]);
console.log(`${property}: ${result} ${result.length == 10 ? "(loops forever)" : ""}`);
}