למוני לולאות יש תפקיד מיוחד ותוכניתנים מצפים מהם להתנהג בהתאם, דהיינו, לעבור מערך לערך בצורה מסודרת. אסור בתכלית האיסור (למרות שבהחלט אפשרי טכנית) לשחק איתו. מאוד לא מומלץ, למשל, לגרום למונה לקפוץ על ערך מסוים סתם, או לחזור אחורה, ופתאום לקפוץ לסוף הלולאה.
השינוי היחיד המותר בערך מונה לולאה הוא קידום פשוט וצפוי, בתחומי שורת ה-for עצמה.
מה קורה עם המונה כשנגמרת הלולאה?
טווח החיים שלו לא נגמר מייד אבל התפקיד שלו כן.
אם נשתמש בו מחוץ ללולאה, המהדר לא יתריע כי טווח ההגדרה של המונה עדיין בתוקף אך לא נוכל להסתמך על ערכו והבאג כבר ממשמש ובא.
for (int i=0; i<=arr.size(); i++)
{
arr[i] := i * 7 - arr[i+1]; // not changing the value of i!
arr[i] := (i++) * 7 - arr[i+1];
// changing the value and losing control on i
}
int j = i * 2;
// NEVER use a counter out of the loop's scope
בודאי תשאלו את עצמכם מדוע אנו משתמשים בשם לא משמעותי כמו i?
מדוע לא נשתמש ב-counter, index וכו'?
במוני לולאות נהוג להשתמש בד"כ באותיות מכיוון שראשית, תפקידם ברור ומינימלי, ושנית - מכיוון שהמשתנה יופיע כמעט תמיד בין [ ] ועל כן כדי לא להעמיס על הקוד משתמשים באותיות.