בואו נדבר על לולאות. יש לי פה לולאת while (או בעברית: לולאת ״כל עוד״), ועם כמה שורות קוד, אני יכולה לכתוב את ההודעה הזו לאורך כל המסך.
אם אני אשנה את ההודעה ככה, בשביל לעשות אותה טובה יותר
כל ההודעות משתנות.
אז איך זה עובד? ובכן, נוכל להסתכל על הקוד הזה עוד רגע
אבל קודם כל בואו ניקח צעד אחורה ונחשוב על איך היינו כותבים את התוכנית הזו
בעזרת מה שאנחנו יודעים כרגע מבלי להשתמש בלולאות.
בשביל לעשות את זה, היינו צריכים לכתוב המון פעמים את הטקסט הזה שוב ושוב ושוב נכון?
היינו משתמשים בפונקציית text, כותבים הודעה, שמים את זה למעלה, ועכשיו פשוט חוזרים על זה
מספיק פעמים כך שבסוף היינו מקבלים טקסט מלמעלה עד למטה.
וזה ייקח המון עבודה נכון?
מכיוון שהלמטה די רחוק, וזה אפילו גרוע יותר אם
שזה לא 70, זה צריך להיות קרוב יותר, נגיד,
60. ועכשיו זה משפיע על זה מכיוון שזה צריך להיות קטן יותר
וכל אלו בהמשך, עוד קריאות שאנחנו צריכים לבצע.
למעשה, בדרך הזו ייקח אפילו יותר זמן להגיע למטה.
אז, זה די מעצבן, ולמזלנו יש לנו לולאות שיעזרו לנו
מעתה והלאה, בכל זמן שאתם רואים קוד שחוזר על עצמו כך, המחשבה הראשונה שלכם תהיה
״האם אני יכול להשתמש פה בלולאה?״ לולאה תאפשר לנו לחזור על הקוד שכתבנו שוב ושוב
ושוב, תוך כדי שאנחנו עושים רק שינויים קטנים בכל פעם, וכך אנו
היינו משכתבים את הקוד הזה עם לולאה. על מנת להתחיל, אנחנו צריכים להקליד ״while״,
סוגריים, ואז סוגרים מסולסלים. אנחנו הולכים לקבל את ההודעה הזו אבל
זה רק בגלל שלא סיימנו עדיין. אל תדאגו, היא תעלם כשנסיים.
בכל פעם שאתם יוצרים לולאה אתם צריכים לענות על שלוש שאלות מפתח.
והנה הן:
השאלה הראשונה היא: ״על מה אני רוצה לחזור?״
מה שאנחנו רוצים לחזור עליו צריך להיות בין הסוגריים המסולסלים.
אנחנו רוצים לחזור על הקריאה לפונקציית text בשלב זה, אז נשים את זה פה.
אבל זה מדי מטופש לא? מכיוון שכרגע אנחנו הולכים לחזור על
קריאה לאותה פונקציית text שוב ושוב, שזה לא ממש טוב, כי אנחנו צריכים שמשהו יישתנה
מה שמביא אותנו לשאלה השנייה, שהיא ״מה היינו רוצים שיישתנה בכל פעם?״
אז היינו רוצים לשנות את מיקום ה-״y״ נכון? היינו רוצים שהוא יהפוך ל-60 ואז היינו
רוצים שהוא יהפוך ל-80. אז בואו נכניס את זה למשתנה במקום
שנקרא y, מכיוון שזהו מיקום ה-y. אז בואו נגדיר משתנה חדש
כאן למעלה. אני אאתחל אותו עם הערך 40. ועכשיו, אנחנו רק צריכים
לשנות את y. אנחנו יכולים לעשות את זה כאן למטה, נוכל להגיד ש-y מקבל את y + 20
ואז הוא ייגדל בכל פעם. ולמעשה, אנחנו יכולים להשתמש
במה שלמדנו בשיעור קיצור קוד כאן. אנחנו יכול להשתמש
בקיצור. מעולה, ואנחנו רק
צריכים לענות על שאלה מספר שלוש עכשיו, שהיא ״לכמה זמן היינו רוצים לחזור על הפעולה הזו?״
אנחנו הרי רוצים לעשות זאת שוב ושוב ושוב, אבל אנחנו לא באמת רוצים לעשות את זה לנצח נכון?
אם נעשה את זה לנצח, קודם כל, זה הרבה זמן, דבר שני, יש סיכוי שזה יקריס את הדפדפן שלכם.
אבל בתקווה שלא. אז באמת, אנחנו רק רוצים לעשות
את זה עד שנגיע לתחתית הדף נכון? מה שאומר שאנחנו רוצים לעשות את זה
כל עוד y קטן מ-400. אז פשוט נשים את זה פה, ופה
ויש לנו את זה! ההודעה נרשמת לכל אורך המסך.
ואתם רואים שזה הרבה יותר פשוט מהגישה הקודמת שלנו,
שאומנם לקח לנו אותה זמן לממש אותה, אבל היינו רק ברבע הדרך לסיים.
אז נוכל להיפטר מזה, והנה התוכנית שלנו.
עכשיו, בוא ננסה להבין יותר לעומק מה עשינו. בשביל לעשות את זה,
אני הולכת להדפיס את y בכל פעם. אני הולכת להגיד ״y הוא עכשיו:״ ואז כאן למטה
אני פשוט אצמיד את y לסוף ההודעה כך שנוכל לראות אותו.
אז כרגע, הערך משתנה ב-20, ואנחנו יכולים לשנות את זה
על ידי שינוי פשוט של המשתנה הזה כאן. או שאפשר לעשות את זה נגיד
50. ועכשיו הרווחים משתנים ב-50. בצורה דומה,
תוכלו לשנות ולשחק עם שאר הערכים האלו ולשנות אותם.
תוכלו לראות כיצד זה משפיע על עצירת התוכנה.
על מנת להבין את זה תוכלו לחשוב על זה כמו
הצהרת if. יש לנו את הביטוי הבוליאני שלנו כאן,
בדיוק כפי שלמדתם. ואז, יש לנו את גוף ההצהרה שאותו נבצע,
החלק הזה, רק אם הבוליאני נכון (אמת). אחרת, נקפוץ ישר לסוף
אבל מה שמעניין הוא שעם לולאת while יש לנו למעשה
את הדבר הסודי הזה שנמצא למטה ואומר ״תחזור בחזרה להתחלה של הלולאה״.
ומה שאומרת ההוראה הסודית הזו היא שבמקום
לעזוב ולהמשיך פשוט קדימה כמו עם הצהרת if,
בכל פעם שאנחנו עושים את הלולאה, אנחנו הולכים לחזור אחורה
ולבדוק אם התנאי עדיין נכון. ואם הוא עדיין נכון, אנחנו הולכים לחזור על הפעולה שוב.
ובדיוק כמו שאתם מנחשים, בפעם השנייה, אנחנו הולכים לעשות את אותו הדבר...
אנחנו הולכים לבדוק ולחזור להתחלה. האם y עדיין קטן מ-279?
אם כן, אז נחזור פעם נוספת ונבדוק שוב.
ואם לא, נחזור להתחלה כאן, ולבסוף
נצא מהלולאה ונמשיך עם התוכנית שלנו.
יש עוד הרבה דרכים מעניינות להשתמש בלולאות עליהן נלמד בקרוב,
אבל לעת עתה, זו אחלה התחלה. בהצלחה!