无穷回圈是无意产生的，也就是程序错误。新手程序员常常会出现这种错误，但在资深程序员身上也有可能发生，而且错误的原因可能相当微妙，因此不容易除错。例如程序员想要从收集链表中所有的资料，因此会依链表依序前进，直到链表的尾端为止，但若程式未考虑链表可能是循环链表，在循环链表中依序前进的程序，反而会移动到链表较前面的部份，此时就会变成无穷回圈。大部份的无穷回圈可以借由详细的的代码检视而找出，不过没有通用的方式可以判断程式是否会结束，或者会永远执行（也就是无穷回圈）。判断程式会结束或会永远执行的问题称为停机问