לולאות מאפשרות להריץ קטע קוד מספר פעמים עד שתנאי כלשהו מתקיים. הן עוזרות להריץ פקודות בצורה יעילה ומונעות את הצורך לחזור על אותו קוד שוב ושוב. בפוסט הזה נתמקד בלולאה do-while ב-JavaScript, נסביר את התחביר שלה ונציג דוגמאות מעשיות.
לולאת do-while שימושית במיוחד כשרוצים לוודא שקטע קוד ירוץ לפחות פעם אחת, ללא תלות בתנאי.
הלולאה do-while ב-JavaScript
בניגוד ללולאות for או while, לולאת do-while מריצה תמיד את קטע הקוד לפחות פעם אחת לפני בדיקת התנאי. הסיבה לכך היא שהתנאי נבדק רק לאחר שהלולאה כבר רצה. הנה התחביר הבסיסי של לולאה זו ב-JavaScript:
do {
statement;
} while (condition);
הנה פירוט של מה שקורה מאחורי הקלעים:
- הפקודה (גוף הלולאה) מתבצעת.
- לאחר ביצוע הפקודה, התנאי נבדק. אם התנאי מתקיים (true), הלולאה ממשיכה והפקודה רצה שוב. אם התנאי אינו מתקיים (false), הלולאה מסתיימת.
נציג מספר דוגמאות מעשיות לשימוש בלולאת do-while
בואו נראה איך לולאת do-while פועלת בפועל עם מספר תרחישים שונים:
דוגמה א: הצגת הודעה 5 פעמים
בדוגמה הזו נשתמש בלולאת do-while כדי להציג הודעה 5 פעמים:
// תוכנית להצגת הודעה 5 פעמים
let i = 1;
const n = 5;
do {
console.log('I Love JavaScript.');
i++;
} while (i <= n);
פלט:
I Love JavaScript.
I Love JavaScript.
I Love JavaScript.
I Love JavaScript.
I Love JavaScript.
במקרה הזה, הלולאה רצה 5 פעמים מכיוון שהערך של i
גדל לאחר כל איטרציה ונבדק כנגד הערך של n
.
דוגמה ב: הצגת מספרים מ-1 עד 5
כעת נשתמש בלולאת do-while כדי להדפיס מספרים מ-1 עד 5:
// תוכנית להצגת מספרים מ-1 עד 5
let i = 1;
const n = 5;
do {
console.log(i);
i++;
} while (i <= n);
פלט:
1
2
3
4
5
בדוגמה הזו, הלולאה ממשיכה לרוץ כל עוד i <= 5
. אפילו אם הערך ההתחלתי של i
היה גדול מ-5
, הלולאה הייתה רצה לפחות פעם אחת לפני בדיקת התנאי.
הבדלים מרכזיים בין לולאות while ו-do-while
ההבדל המרכזי בין לולאות while ולולאות do-while טמון בנקודה בה מתבצעת בדיקת התנאי:
- לולאת while: התנאי נבדק בתחילת הלולאה, לפני שגוף הלולאה רץ. אם התנאי אינו מתקיים (false) מלכתחילה, גוף הלולאה לא ירוץ.
- לולאת do-while: גוף הלולאה מתבצע קודם, ולאחר מכן נבדק התנאי. עקרון זה מבטיח שגוף הלולאה ירוץ לפחות פעם אחת, אפילו אם התנאי אינו מתקיים בהתחלה (false).
הנה דוגמה המציגה את ההבדל בין שתי הלולאות:
שימוש בלולאת while:
let i = 6;
const n = 5;
while (i <= n) {
console.log(i);
i++;
}
פלט: (שום דבר לא יודפס מכיוון שהתנאי הוא false בהתחלה.)
שימוש בלולאת do-while:
let i = 6;
const n = 5;
do {
console.log(i);
i++;
} while (i <= n);
פלט:
6
במקרה הזה, למרות שהתנאי הוא false בהתחלה, הלולאה מבצעת את הקוד בגוף הלולאה לפחות פעם אחת, ולכן המספר 6
מודפס.
דוגמה ג: חישוב סכום של מספרים טבעיים מ-1 עד 100
בואו נשתמש בלולאת do-while כדי לחשב את סכום המספרים הטבעיים מ-1 עד 100:
// תוכנית לחישוב הסכום של מספרים טבעיים
let sum = 0;
let i = 1;
const n = 100;
do {
sum += i;
i++;
} while (i <= n);
console.log('סכום:', sum);
פלט:
סכום: 5050
לולאה זו מוסיפה את הערך של i
למשתנה sum
וממשיכה בכך עד ש-i
מגיע ל-101
, אז התנאי נכשל והלולאה מפסיקה.
דוגמה ד: שימוש ב-do-while כדי לאמת קלט מהמשתמש
ניתן להשתמש בלולאת do-while במקרים שבהם יש לאמת קלט מהמשתמש ולוודא שהלולאה רצה לפחות פעם אחת לפני ביצוע האימות. הנה דוגמה:
let number;
do {
number = prompt("הכנס מספר גדול מ-10:");
} while (number <= 10);
console.log("הכנסת את המספר: " + number);
בדוגמה זו, הלולאה מבקשת מהמשתמש קלט וממשיכה לבקש מספר עד שמוזן ערך גדול מ-10.
סיכום
לולאת do-while ב-JavaScript היא מבנה שימושי המבטיח ביצוע של גוף הלולאה לפחות פעם אחת, דבר ההופך אותה שימושית במיוחד למשימות בהן יש לבדוק את התנאי לאחר ביצוע הקוד. למרות שהיא דומה ללולאת while, לולאת do-while ייחודית במבנה ובהתנהגות שלה.
ההבנה של לולאת do-while, יחד עם סוגים אחרים של לולאות, היא חיונית לתכנות יעיל ב-JavaScript. אם ברצונכם לחקור עוד על לולאות, עיינו בפוסט שלי על לולאת for ב-JavaScript, שם אני מעמיק במבנה לולאה דומה אך שונה.