Лучше, чтобы код был свободным от цикла, но в случае циклов, если вы хотите найти изолированный цикл в графе с E и V, потребуется O (| E | + | V |), это похоже на поиск подключенного компонента алгоритм и затем запустить поиск всего цикла графа с BFS, и если вы просто думаете о | V |он может быть очень тяжелым (в скомпилированной сборке), так что лучше этого избежать, и из-за этого его оставили разработчикам.