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.