# How to set proper terminal condition here

Lets say I have this function:

``````function divisibleTriangleNumber(n) {

let triangCounter = 1;

while (true) {
let testedNumber = getNthTriangular(triangCounter);
if (getNumberofDivisors(testedNumber) > n) {
return testedNumber;
}
triangCounter++;
}

}
``````

It’s working, and getting the job done for this Euler problem.
But I have no idea how do I set terminal condition for while loop here, I am running in this problems with while loop like all the time.

If you need more context for this code, I can post whole solution, with getNumberOfDivisors() and getNthTriangular() helper functions.

Ideally, the condition should be in the head of the while loop.

`while (true)` loops are a little scary and are usually used for user input prompt loops (if empty ask again) or maybe something like a game loop. Although then the `true` condition would likely be a boolean variable that can be given a name that explains it and can be changed to `false`.

``````while (isRunning)
``````

The hint page solution has the functions return value as the condition for the loop if you need an example.

1 Like

I guess, that’s what I needed to hear, thanks.

I saw hint page before create this post. But wasn’t able to get logic from there to my code.

I guess I was a little bit confused because they are using loop to generate new triangle numbers, and I call function for that purpose(my function simply returns formula for nth triangle number).

However, I was able to rewrite code like this. Seems to work.

``````  function divisibleTriangleNumber(n) {

let triangCounter = 1;
let testedNumber = getNthTriangular(triangCounter);

while (getNumberofDivisors(testedNumber) <= n) {
triangCounter++;
testedNumber = getNthTriangular(triangCounter);
}
return testedNumber;
}
``````