PracticU

לולאות מקוננות - Nested Loops

בלי כתוביותעם כתוביות
PracticU › קורס יסודות התכנות - שפת JAVA - קורס ג'אווה למתחילים › לולאות מקוננות - Nested Loops
לולאות מקוננות - Nested Loops
לולאה מקוננת היא לולאה שנמצאת בתוך לולאה אחרת, ללא קשר לסוג של כל אחת מהן. זה מכשול מורכב באלגוריתמיקה, ומי שעובר אותו מתקדם הרבה בתכנות.
השלבים העיקריים
1. הרכבה: כל שילוב של for, while ו-do-while, כשאחת בתוך השנייה, נחשב לולאה מקוננת.
2. דוגמה - כוכביות לפי אורך המספר: קולטים מספרים עד שמתקבל 0 או מספר שלילי, ולכל מספר מציגים שורה של כוכביות באורכו. הלולאה החיצונית היא while, והפנימית היא for.
3. איפוס הלולאה הפנימית: בכל פעם שהלולאה הפנימית מתחילה, חלק האתחול רץ שוב. לכן i חוזר ל-1 בכל חזרה של הלולאה החיצונית.
4. דוגמה - עשר משכורות: אם משכורת שלילית, לולאה פנימית (while) מבקשת שוב, עד שמתקבלת משכורת חוקית. רק אז מחושב המס של 10%.
5. דוגמה - מלבן: שתי לולאות for, אחת לגובה ואחת לרוחב. הלולאה הפנימית מחזיקה משתנה אחר, בדרך כלל j, כי i כבר תפוס בלולאה החיצונית. בכל שורה מודפסות 20 כוכביות, ואחר כך יורדת שורה.
שימו לב
המשתנה של הלולאה הפנימית חייב להיות שונה ממשתנה הלולאה החיצונית, אחרת הם מתנגשים.
השיעור הבא בקורס: תרגול לולאות מקוננות בג'אווה
מילון מושגים:
לולאה – מבנה בקרה שחוזר על קטע קוד שוב ושוב כל עוד תנאי מתקיים או עבור כל פריט באוסף.
משתנה – שם שמפנה למקום בזיכרון שבו נשמר ערך שיכול להשתנות במהלך ריצת התוכנית, כמו מספר, טקסט או אובייקט.

פרקי ההרצאה: לולאות מקוננות - Nested Loops

  1. 00:00

    מה זה לולאה מקוננת ולמה היא קשה

  2. 01:30

    דוגמה ראשונה: כוכביות לפי אורך המספר

  3. 02:51

    לולאת for פנימית בתוך לולאת while

  4. 04:13

    איך הלולאה הפנימית מתחילה מחדש

  5. 05:10

    דוגמה שנייה: מס על עשר משכורות

  6. 05:44

    לולאת while פנימית לתיקון משכורת שלילית

  7. 06:44

    הודעת שגיאה וקליטה חוזרת של המשכורת

  8. 07:22

    חישוב המס אחרי הלולאה הפנימית

תמלול ההרצאה: לולאות מקוננות - Nested Loops

הטקסט המלא של הדקות הראשונות בהרצאה «לולאות מקוננות - Nested Loops» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

    בתהליך הלמידה של תכנות והפיכה למתכנת יש איזשהו מחסום שמתכנתים מתחילים תמיד נתקלים בו וזה בעצם מחסום האלגוריתמיקה שאנחנו רוצים לעבור בקורס הזה.

  2. 00:16

    אחד מהדברים היותר מורכבים במחסום הזה והיותר קשים למעבר הוא הנושא של לולאות מקוננות. לולאה מקוננת זאת לולאה בתוך לולאה אחרת.

  3. 00:28

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

  4. 00:40

    יכולה להיות לנו לולאת for ובתוכה לולאת while, או לולאת do while ובתוכה לולאת for, או לולאת while ובתוכה לולאת do while, ולא משנה מה הסוגים. ברגע שיש לנו לולאה שאחת מהפקודות שנמצאות בתוכה זאת לולאה אחרת, הדבר נחשב ללולאה המקוננת.

  5. 00:59

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

  6. 01:14

    אם מתכנתים סגורים על המכשול הזה של עולאות מקוננות אז הדרך שלהם לתכנות ופיתוח נפתחת ובעצם כמות נכבדת מהיכולות התכנותיות שלהם כבר נפתרה מבחינת האלגוריתמיקה עצמה.

  7. 01:30

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

  8. 01:57

    כוכביות כאורך המספר. אז למה הדבר הזה הוא לולאה מקוננת? כי דבר ראשון אנחנו רוצים לקלוט שוב ושוב מספרים מהמשתמש עד שהוא מכניס 0 או מספר שלילי.

  9. 02:12

    הלולאה המתאימה כאן היא כמובן לולאת while, כי אנחנו לא יודעים כמה פעמים המשתמש הולך להכניס מספרים חיוביים, ועבור כל מספר כזה אנחנו רוצים להציג רצף של כוכביות, בשביל זה אנחנו צריכים עוד לולאה.

  10. 02:27

    בואו נעשה את זה. אז נאמר למשתמש enter numbers for ending enter a non-positive number. מיד לאחר מכן יש לנו את המספר n, את המשתנה, ויש לנו כאן צורך ב-next int, קלטנו את זה מהיוזר.

  11. 02:53

    לאחר מכן אנחנו רוצים לולאה שרצה כל עוד n גדול מ-0. מה אנחנו רוצים לעשות כל עוד n גדול מ-0? ויש לנו פה לולאת 4 נוספת והנה הלולאה המקוננת שלנו וזה נקרא באנגלית נסטד לופ.

  12. 03:11

    אז בנסטד לופ שלנו אנחנו רוצים להתחיל i שווה ל-1 כל עוד i קטן או שווה ל-n, i++. בואו נציג כוכבית, בואו נראה תשורה בסוף ואנחנו רוצים שוב פעם לקלוט מהיוזר מספר בכדי לדעת האם אנחנו ממשיכים או מפסיקים.

  13. 03:39

    בואו נריץ את זה ונראה שיש לנו פה בקשה לקבל מספרים. יוזר מכניס 12 והוא רואה 12 כוכביות האמת אני רציתי אותן בשורה אז בואו נתקן את זה ונריץ שוב פעם 12 והנה 12 כוכביות 20 והנה 20 כוכביות 5 והנה 5 כוכביות בואו ניתן כוכבית אחת, הנה שתי כוכביות והנה תשע כוכביות וכן הלאה.

  14. 04:13

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

  15. 04:43

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

  16. 04:57

    זאת דוגמה ראשונה ללולאה מקוננת. בואו נראה דוגמה נוספת, אבל הפעם עם לולאות קצת אחרות. אז בואו ניגש ונגדיר שאנחנו רוצים לקבל מהמשתמש 10 משכורות, ועבור כל משכורת אנחנו רוצים להציג כמה מס צריך לשלם על המשכורת הזאת, שזה בעצם 10%.

  17. 05:25

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

  18. 05:44

    הוא יכול לטעות ולכן הבקשה החוזרת הזאת של משכורת שוב ושוב היא עוד לולאה שנמצאת בתוך הלולאה הגדולה של ה-10 משכורות. אז בואו נרוץ בלולאה הראשונה i שווה ל-1 כל עוד i קטן שווה ל-10 i++ ואנחנו רוצים לומר למשתמש enter salary, נשרשר כאן את i, לא צריך כאן את ה-ln הזה,

  19. 06:21

    ואנחנו רוצים לקלוט את המשכורת. יש לנו פה את ה-salary שווה console.next-double במקרה הזה. כאן יכול להיות שהמשתמש כבר תאר ומכניס לנו משכורת מינוס 1000.

  20. 06:38

    אנחנו לא מוכנים לקבל מינוס 1000, אבל ספציפית לגבי המשכורת הזאת אנחנו רוצים לתקן אותו ולבקש שוב ושוב ושוב משכורת חוקית. זה כמובן לולאת while, מפני שאנחנו רוצים להציג הודעות שגיאה ולבקש שוב.

  21. 06:54

    כל עוד salary קטן מ-0, בואו נציג לו איזושהי הודעת שגיאה. salary can't be negative, please enter again.

  22. 07:11

    נגיד salary again, again את ה-salary, לא צריך פה את ה-ln הזה. ושוב פעם אנחנו רוצים לקחת את הפקודה הזאת ולקלוט שוב פעם משכורת מהמשתמש. רק אחרי שעברנו את הלולה הפנימית בהצלחה, אנחנו רוצים להציג 10% tax ease,

לקורס המלא: קורס ג'אווה למתחילים אונליין

ההרצאה הקודמת: מה הבדל בין כל סוגי הלולאות

ההרצאה הבאה: תרגול לולאות מקוננות בג'אווה

הרצאות קשורות מקורסים אחרים

  • תרגול לולאות
  • לולאות While - חלק 1
  • לולאות - for - while
  • לולאות ב-Javascript

קורסים נוספים במסלול

  • קורס מבוא ל-QA - מידע חשוב לבודק תוכנה
  • קורס פוסטמן - Postman - בדיקות לאתרי אינטרנט - API
  • קורס Robot Framework - בדיקות QA ממשק גרפי
  • קורס סלניום בסיסי - בדיקות אוטומטיות - Selenium
  • קורס סלניום מתקדם - CI/CD - Continues Integration
  • קורס מייבן - Maven