facebook pixel מדריך: פירוט שפת תכנות - for - www.4project.co.il
Main logo www.4project.co.il
כל הרכיבים לפרוייקט שלכם
עגלת קניות

העגלה ריקה

פירוט שפת תכנות - for


2022-06-14 11:35:39
פקודת for משמשת לחזרה על ביצוע הקוד בתוך סוגריים מסולסלים. בדרך כלל משתמשים במונה המתקדם וסופר כמה פעמים צריך לחזור על ביצוע הקוד. פקודת ה-for שימושית לפעולות חוזרות ולעתים קרובות משתמשים בה בשילוב עם מערכים כדי לבצע פעולה כלשהי על אוסף של נתונים או קווים.
בהדרת פקודת for יש 3 חלקים:
קוד: בחר הכל
for (initialization; condition; increment) {
    //statement(s);
}

initialization - אתחול
condition - תנאי
increment - התקדמות



קודם כל מתבצע קוד האתחול (initialization) והוא נקרא רק פעם אחת. בכל ביצוע חוזר של הקוד מתבצעת בדיקה של התנאי (condition), אם התנאי מתקיים, הקוד בסוגריים המסולסלים מתבצע ואחריו גם קוד ההתקדמות (increment). כאשר התנאי לא מתקיים, הלולאה נפסקת.

דוגמה

קוד: בחר הכל
// Dim an LED using a PWM pin
int PWMpin = 10; // LED in series with 470 ohm resistor on pin 10

void setup()
{
    // no setup needed
}

void loop()
{
    for (int i=0; i <= 255; i++){
        analogWrite(PWMpin, i);
        delay(10);
    }
}


טיפים לקידוד

בשפת C לולאות for הרבה יותר גמישות בהשוואה לשפות אחרות, כמו Basic ואחרות. אפשר לא לכלול כל אחת (או כולם יחד) משלושת החלקים בהגדרה של פקודת for, אבל בכל זאת צריך לכלול את הנקודות פסיק ";" המפרידות ביניהן. בנוסף, התוכן של חלקי האתחול, התנאי והתקדמות יכול להיות כל פקודה תקנית של שפת C עם משתנים שלא קשורים לכלום, ויכולים להיות מכל סוג של נתון, כולל ה-float כדוגמה. הגדרות לא שגרתיות של פקודות for יכולות לפתור בעיות תכנות די נדירות.
לדוגמה, שימוש בכפל יפיק התקדמות לוגריתמית:
קוד: בחר הכל
for(int x = 2; x < 100; x = x * 1.5){
    println(x);
}

דוגמה זו מייצרת סדרה של מספרים: 2,3,4,6,9,13,19,28,42,63,94

דוגמה נוספת היא להדליק ולכבות מנורת לד בצורה הדרגתית ע"י שימוש בלולאת for אחת:
קוד: בחר הכל
void loop()
{
    int x = 1;
    for (int i = 0; i > -1; i = i + x){
        analogWrite(PWMpin, i);
        if (i == 255) x = -1;             // switch direction at peak
        delay(10);
    }
}


ראו גם:

while

פירוט שפת תכנות לסביבת Arduino


עמוד זה הוא תרגום של for statements לפי רישיון Creative Commons Attribution-ShareAlike 3.0.