פקודת while
- eddiearb
- Mar 27, 2019
- 2 min read
פקודת while
בכל שפת תוכנה יש גם את הפקודה while שמשמעותה "כל עוד" או "כל זמן" והיא כבר שייכת לסוג הפקודות המבצעות בדיקות חוזרות של תנאים ונקראות גם לולאות או באנגלית loop. כמו תמיד, הטוב ביותר הוא להתחיל בדוגמא –
x=0
while x<3:
print (x)
x=x+1
>>>
0
1
2
התוכנית למעלה יוצרת לולאה בעלת תנאי, שכל עוד x קטן מ- 3 היא מבצעת שתי פעולות, היא קודם מדפיסה את הערך העדכני של x (0 בהתחלה) ולאחר מכן היא מוסיפה לערך את המספר 1 (מגדילה אותו ב- 1) וחוזרת על הבדיקה האם x עדיין קטן מ- 3, (היות שהוא כבר שווה 1 וזה קטן מ- 3) היא מדפיסה את המספר 1 והופכת את x ל- 2. מבצעת שוב את הבדיקה האם עכשיו x קטן מ- 3, והיות ש- 2 קטן משלוש, היא מדפיסה את המספר 2 ומוסיפה ל – x את המספר 1 כך שהוא שווה עכשיו ל- 3 , בודקת שוב האםx קטן מ-3, והפעם התשובה היא שלילית, וזה הסימן לפקודת while להפסיק את הבדיקות שלה ולסיים את הלולאה. כך שלאחר ש- x שווה ל- 3 היא לא מדפיסה יותר שום דבר.
את הפעולה של הוספת ערך מסוים למשתנה ניתן לרשום בפייתון גם בקיצור – במקום לרשום x=x+3 אפשר לרשום x += 3 וזה יבצע את הפעולה של הוספת המספר 3 לערך הקיים של x .
ניתן להבין שפקודת while יכולה לרוץ באופן אינסופי -
x=5
while x>3:
print (x)
x +=1
>>>
5
6
7
8
…
עד אינסוף
היות ש x גדול מ- 3 התוכנית תדפיס את הערך של x ותוסיף לו 1 ותמשיך לבצע את הבדיקה פעם אחר פעם בלי סוף, משום ש-x לא יהיה אף פעם קטן או שווה ל- 3 אלא רק ילך ויגדל ולולאת ה- while תמשיך להדפיס מספרים עד שמישהו או משהו יעצור אותה.
לולאות אינסופיות שכאלה, בלי שמגיע תנאי שעוצר אותן, לרוב אינן רצויות בתוכנה משום שהן תוקעות אותה במקום ממנו היא לא מתקדמת או מבזבזת את הזכרון היקר של המחשב.
עכשיו נשלב פקודת if עם פקודת while על מנת ליצור מבנים מורכבים ומעניינים יותר –
x=0
while x<5:
if x==3:
print ("three")
print (x)
x +=1
>>>
0
1
2
three
3
4
בתוכנית למעלה שילבנו בתוך לולאת ה while פקודת if שבודקת האם x שווה ל- 3, ובמידה שכן היא מדפיסה את המילה three וממשיכה הלאה, מדפיסה את הערך של x ומוסיפה 1 לערך שלו, עד ש x כבר לא קטן מ- 5. כדאי לשים לב שהמחשב יודע לשייך את הדפסת המילה three לתנאי if x==3 רק משום שביצענו הזחה ימינה של שורת הקוד מתחת לשורת הפקודה if.
אפשר לבקש מהלולאה לעצור לאחר שמצאנו את מה שאנחנו מחפשים, לשם כך נשתמש בפקודה break שמשמעותה המילולית לשבור את הלולאה -
x=0
while x<5:
if x==3:
break
print (x)
x +=1
>>>
0
1
2
בדוגמא שלמעלה התוכנית אינה ממשיכה לאחר שמתקיים x שווה ל- 3 והמספר 3 לעולם לא יודפס, משום שההוראה להדפיס אותו נמצאת לאחר פקודת break שמסיימת את הלולאה, למרות ש x עדיין קטן מ - 5.
Are you looking for an opportunity to trade in the forex market without investing your own capital? With a Free Funded Forex Account with WinproFX, you can kickstart your trading journey without financial risk. WinproFX provides traders with a fully funded account, allowing them to leverage professional-grade trading conditions while keeping their personal funds safe. This is an excellent opportunity for both beginners and experienced traders who want to test their strategies and grow their skills in real market conditions. By using a funded account, you get access to competitive spreads, advanced trading tools, and a seamless trading experience without worrying about losing your own money.
With a Free Funded Forex Account with WinproFX, you can trade major and minor…