9 תשובות
לולאה בלי מספר מסוים של חזרות, היא מפסיקה כשמתבצע התנאי או שהיא לעולם לא נגמרת
לולאת while, כמעט בכל שפת תכנות, היא לולאה שחוזרת על עצמה עד שתנאי מסויים כבר לא תקף. היתרון שלה על לולאת for הוא שלא צריך לדעת מראש כמה פעמים היא צריכה לרוץ.
בpython לולאת while היא לולאה שמסתמכת על ביטוי בוליאני (ביטוי של אמת או שקר - true או false, נגיד 3>4 יהיה false) וחוזרת על התוכן שלה כל עוד הוא true. לדוגמה הלולאה:
while 3==3:
print(10)
תדפיס אינסוף פעמים 10 כי תמיד 3==3. לעומת זה:
x=0
while x<3:
x+=1
print(x)
תדפיס 1, 2, 3. כי בהתחלה x = 0 אז מתקיים x<3, אז נכנסים לwhile ועושים x+=1 ו print(x) ואז ככה ל x=1,2 אבל לx=3 כבר לא מתקיים x<3 אז ממשיכם בקוד.
לא יודע מזה בפייתון אבל בjavascript זה לולאה שזה לא מספר מסוים של חשרות היא מםסעקה רק אחרי שמתבצע התנאי
same same
לולאת while היא סוג בקרת זרימה שפועלת באופן הבא:
הלולאה תמשיך להתבצע תמיד אלא אם הביטוי שמופיע בהגדרת הלולאה הופך ללא נכון מבחינה בוליאינית. יש להדגיש שהביטוי אינו צריך להיות בוליאיני. השאלה היא איך יודעים אם ביטוי הוא נכון או לא נכון. אז יופי ששאלת!
אז הלולאה תמשיך להתקיים אלא אם אחד מהתרחישים הבאים קורים:
1. שיטת ה__bool__ של הביטוי מחזירה false
2. שיטת ה__len__ של הביטוי מחזירה 0

לא יודעת מה זה שיטות? אל תדאגי, את תלמדי על זה כשתלמדי על מחלקות בפייתון, שמהוות חלק עיקרי מאוד מפייתון (למעשה, כל אובייקט בפייתון שייך למחלקה כלשהי בלי קשר לאם הגדרת אותו להיות כך או לא)
עכשיו יש לי עוד דבר לספר לך והוא שאפשר לצאת מהלולאה גם בלי ש2 התרחישים הקודמים שתיארתי יקרו. את בטח שואלת איך?
קל, כל מה שצריך זה להשתמש בפקודת הbreak

מקווה שהסברתי טוב!
hermione granger, אהבתי את ההסבר שלך אבל יש לך טעות: לא חובה בפייתון להשתמש בביטוי בוליאיני בwhile. אפשר אם את רוצה אבל באמת שזה לא חובה. דוגמה לכך תיהיה הקוד הבא:
i=0
while 1:

print(i)
i+=1

if i==5:
break

הרי לא השתמשתי בשום ביטוי בוליאני בתוך הגדרת לולאת הwhile והיא עדיין רצה. איך? טוב ששאלת

אז ל1 אין את שיטת __len__ אבל יש לו את שיטת __bool__ והלולאה רצה, אבל מפסיקה ברגע ששיטת __bool__ מחזירה false
שואל השאלה:
תודה לכולכם עזרתם לי מאוד :)
דובי גמדון חופשי, אבל הבנת מה שכתבתי?