Joskus kuitenkin C- kielessä tehdään tarkoituksella "ikuisia" - silmukoita:
for (;;) { ... if (lopetus_ehto) break; ... } while (1) { ... if (lopetus_ehto) break; ... } do { ... if (lopetus_ehto) break; ... } while (1);Näissä kahdessa ensimmäisessä korostuu silmukan ikuisuus. Viimeinen ei ole hyvä vaihtoehto.
Tällaiset ikuiset silmukat ovat hyväksyttävissä silloin, kun silmukan lopetusehto on luonnollisesti keskellä silmukkaa. Usein kuitenkin lauseiden uudelleen järjestelyllä lopetusehto voidaan sijoittaa silmukan alkuun tai loppuun, jolloin tavallinen while- , do- while - tai for - silmukka kelpaa.