מדריך VBS – לולאות

מהי לולאה?

לפעמים אנו נתקלים במצב בו אנו רוצים לבצע קטע קוד מסויים כמה פעמים. הלולאות מאפשרות לנו לעשות זאת, ללא חזרה על אותה שורת קוד.
ישנן כמה דרכים לבצע לולאות ב-VBScript :

לולאות For ..Next

For <Variable> = <Value> To <Value>
    'some code            
Next 

נשתמש בסוג זה של לולאה, כאשר אנו יודעים בדיוק כמה פעמים אנו רוצים לבצע את קטע הקוד. בדוגמא הבאה, אנו סוכמים את כל המספרים מ-1 עד 10:

Dim i,num
For i=1 To 10
    num=num+i
Next

כמובן שגם המספרים בלולאה (1 ו-10) יכולים להיות משתנים בעצמם.
כל פעם שמגיעים לשורה Next, ערכו של המשתנה i עולה באחד. כאשר i מגיע ל-11 (גדול מ-10), הלולאה מסתיימת.
דרך נוספת לסיים את הלולאה היא באמצעות הפקודה Exit for. לרוב נבדוק בתוך הלולאה האם תנאי מסויים, בו אנו רוצים לסיים את הלולאה, מתקיים, ואם כן – נפעיל את הפקודה.

בדוגמא הקודמת ראינו לולאה המבצעת קפיצות של 1. אך יש ביכולתינו לשנות פרמטר זה, ע"י הפקודה step.
בלולאה הבאה, אנו מבצעים קפיצות של 3:

For i=1 To 10 Step 3
    str=str & "," & i
Next

בסופה של הלולאה, str תכיל את המחרוזת "1,4,7,10"

באמצעות הפקודה Step ניתן גם לקבוע שהלולאה תרוץ "אחורנית":

For i=10 to 1 Step -1
    num=num+i
Next

במקרה זה, המשתנה i מתחיל מהערך 10 ויורד במשך הלולאה עד הערך 1.

לולאות Do While

Do While <Condition>
    'some code
Loop

נשתמש בלולאה זו, כאשר אנו מעוניינים לבצע קטע קוד מסויים כל עוד תנאי כלשהו מתקיים:

Do While i>10
  'some code
Loop

לולאה זו תתקיים כל עוד i גדול מ-10. אם מלכתחילה, עוד לפני תחילת הלולאה, i קיבל ערך שהוא קטן מ-10, הלולאה לא תתבצע אפילו פעם אחת.
בלולאות מסוג זה יש להקפיד ולוודא שתנאי העצירה של הלולאה אכן יתקיים אי פעם. אם זה לא יקרה, אנו נגיע למצב של לולאה אינסופית
– לולאה שאין ממנה יציאה. לכן, בדוגמא למעלה, יש לוודא שהערך של i בתוך הלולאה משתנה, ושיהיה מצב בו i יהיה קטן מ-10:

Do While i>0
    i=i-1 
    'some code
Loop

לולאות Do Until

Do Until <Condition>
    'some code
Loop

לולאה זו דומה ללולאת Do While, רק שזו מתבצעת כל עוד התנאי אינו מתקיים, כלומר, היא תתבצע "עד ש" משהו יקרה.

Do Until i=10
  'some code    
Loop

גם בלולאה זו, יש לוודא שתנאי העצירה אכן יתקיים.

בכל הלולאות האלו, ניתן לסיים את ריצת הלולאה גם אם תנאי העצירה לא מתקיים, באמצעות הפקודה Exit Do.

סוג לולאה נוסף הוא For Each…Next, עליו נדון בפרק הבא.

תגיות: , , , , , ,

תגובות בפייסבוק