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;
}
```