Return to Video

שימוש בלולאות על מערכים (גרסת וידאו) Looping through Arrays (Video Version)

  • 0:01 - 0:04
    חזרנו, עם תוכנה שמדפיסה את מערך החברים שלי.
  • 0:04 - 0:07
    אבל יש משהו שממש מעצבן אותי לגביה.
  • 0:07 - 0:11
    בכל פעם שאני מוסיפה חבר חדש למערך, אני צריכה להוסיף פקודת text כאן למטה.
  • 0:11 - 0:13
    בואו נאמר שאני מוסיפה את ווינסטון.
  • 0:13 - 0:15
    ובכן, הוא לא מופיע אוטומטית.
  • 0:15 - 0:21
    אם אני רוצה שהוא יופיע, אני צריכה לכתוב text(myFriends[3], ואז לשנות את המיקום בציר ה-y, ואז אנו רואים את ווינסטון.
  • 0:24 - 0:25
    זה הרבה יותר מדי עבודה!
  • 0:26 - 0:31
    אני רק רוצה שבכל פעם שאני מוסיפה מישהו למערך, שורת הקוד תתבצע אוטומטית.
  • 0:32 - 0:35
    ובכן, אתם זוכרים שכלמדנו לולאות?
  • 0:35 - 0:38
    לולאות היו דרך מעולה לחזור על אותו קטע קוד פעמים רבות ברצף.
  • 0:38 - 0:43
    למשל, אם רצינו לקבל אוסף עצים או בלונים ברצף.
  • 0:43 - 0:50
    ובכן, מסתבר שלולאות הן גם דרך מעולה להריץ קטע קוד מסוים על כל איבר במערך.
  • 0:50 - 0:57
    למעשה, אתם תשתמשו בלולאה כמעט בכל פעם שתשתמשו במערך. הם עובדים מצוין יחד.
  • 0:57 - 1:04
    בואו נשתמש בלולאה כדי להציג את השמות של החברים שלי, במקום כל השורות האלו עם פקודות text, כדי שתראו למה אני מתכוונת.
  • 1:04 - 1:08
    נתחיל עם שלוש שאלות שאנחנו תמיד שואלים את עצמנו כשאנחנו כותבים לולאה.
  • 1:08 - 1:13
    ראשית, על מה אני רוצה לחזור? ובכן, הסתכלו על הקוד כאן למעלה. מה חוזר על עצמו? פקודת ה-text.
  • 1:13 - 1:26
    מה אני רוצה שיהיה שונה בכל פעם? בואו נסתכל ונראה מה שונה. מיקום ה-y, והאינקס הנוכחי במערך, נכון? אז את מספר החבר ואת מיקום ה-y.
  • 1:26 - 1:34
    וכמה פעמים עלינו לחזור על הפעולה? נמשיך לחזור עד שלא יהיו יותר חברים במערך.
  • 1:34 - 1:37
    אז עכשיו אנחנו יודעים מה אנחנו רוצים, ואנחנו יכולים ליצור את הלולאה.
  • 1:37 - 1:44
    נתחיל עם משתנה מונה (counter) כדי לעקוב איפה אנחנו בלולאה. אז נכתוב: 'var friendNum=0;'
  • 1:44 - 1:50
    אנחנו נתחיל מ-0, כי כפי שאתם זוכרים, 0 הוא האיבר הראשון במערך, לא 1.
  • 1:51 - 1:58
    אחרי זה יש לנו את לולאת ה-while שלנו. נכתוב: 'while(friendNum < my friends.length)'
  • 1:58 - 2:04
    אנחנו הולכים להשוות את ערך המונה הנוכחי עם המספר הכולל של איברים במערך.
  • 2:04 - 2:08
    בתוך הלולואה, זה איפה שנשתמש בפקודת ה-text.
  • 2:08 - 2:13
    נכתוב: 'text(myFriends[' ואז כאן, במקום מספר, נרשום 'friendNum', כי friendNum מייצג את המספר הנוכחי.
  • 2:13 - 2:18
    וכרגע נרשום רק מיקום אחד.
  • 2:18 - 2:26
    קיבלנו שגיאת לולאה אינסופית, כי לא שינינו את friendNum במהלך הלולאה.
  • 2:26 - 2:30
    זכרו, אנחנו צריכים להגדיל את friendNum בכל פעם, אחרת הלולאה תמשיך לנצח, כי התנאי שלה תמיד יהיה נכון.
  • 2:35 - 2:39
    אני רואה שמשהו קרה. תנו לי רק להפוך את הקוד הישן להערה כדי שאוכל לראות מה הקוד החדש באמת עושה.
  • 2:39 - 2:44
    מה שקרה הוא שהראנו את כל השמות, אבל הם כולם אחד על השני.
  • 2:44 - 2:46
    אז אנחנו צריכים לשנות את מיקום ה-y שלנו.
  • 2:46 - 2:50
    בואו פשוט נכתוב: 'friendNum*30'.
  • 2:50 - 2:55
    אוקיי, זה טוב, אבל סופיה מחוץ למסך, וסופיה לא תהיה מרוצה אם היא תגלה את זה.
  • 2:55 - 3:00
    אז בואו פשוט נוסיף לזה 30. עכשיו הם כולם מוזזים ב-30.
  • 3:00 - 3:04
    יפה! אז עכשיו אתם רואים שיש לנו לולאה שמציגה את המערך שלנו.
  • 3:04 - 3:14
    וזה אומר שאם נוסיף עוד אנשים, כמו OhNoesGuy או Sal - אם אני רק אוסיף אותו למערך, אז Sal יוצג בתור חבר שלי. מצוין! עכשיו הוא חבר שלי.
  • 3:14 - 3:21
    ואתם רואים שזה אוטומטית מציג חברים חדשים כי זה תמיד עובר על כל המערך.
  • 3:21 - 3:24
    נוכל למחוק את הקוד הישן שלנו. אנחנו לא זקוקים לו עוד.
  • 3:24 - 3:28
    בואו נעבור על הקוד הזה כאן ונבין מה הוא עושה.
  • 3:28 - 3:32
    אנחנו מתחילים עם friendNum שווה לאפס.
  • 3:32 - 3:35
    אנחנו בודקים אם friendNum קטן מהאורך הנוכחי [של המערך].
  • 3:35 - 3:38
    כפי שאתם חושבים, 0 קטן מ-6, אז התנאי הוא נכון.
  • 3:38 - 3:42
    אנו נכנסים לתוך הלולאה, ואז כתוב text(myFriends[friendNum]...
  • 3:42 - 3:44
    זה יהיה myFriends במקום ה-0, בפעם הראשונה.
  • 3:44 - 3:47
    ואז 30, ועוד אפס כפול 30.
  • 3:47 - 3:54
    אז זה מציג את סופיה במיקום (10,30). זה מה שזה עושה.
  • 3:54 - 3:56
    ואז friendNum++. עכשיו הערך הוא 1.
  • 3:56 - 4:00
    ואז אנחנו חוזרים חזרה והקוד בודק - האם 1 קטן מהאורך של myFriends? כן, הוא קטן יותר.
  • 4:00 - 4:02
    וזה ממשיך, ממשיך, וממשיך.
  • 4:02 - 4:11
    לבסוף אנחנו מגיעים ל-Sal. זכרו, Sal הוא למעשה האיבר השישי במערך, אבל מספר האינדקס שלו הוא 5, כי מתחילים לספור מאפס.
  • 4:11 - 4:13
    האם 5 קטן מ-6? כן.
  • 4:13 - 4:15
    אז זה מציג את myFriends במקום ה-5.
  • 4:15 - 4:22
    ואז ה-counter (מונה) הופך ל-6, ואנחנו שואלים: האם 6 קטן מ-6? לא. הם שווים.
  • 4:22 - 4:25
    התנאי יהיה שקר. אז זה לא לעולם לא יציג את האיבר השישי,
  • 4:25 - 4:29
    מה שטוב, כי אין שום דבר באינדקס 6.
  • 4:29 - 4:33
    יש איבר שישי, אבל לא אינקדס מספר 6.
  • 4:33 - 4:39
    זה יכול להיות ממש מבלבל, העובדה ש-0 הוא האיבר הראשון וכל זה, אבל אתם תתפסו את זה.
  • 4:39 - 4:41
    אוקיי, זו הלולאה שלנו.
  • 4:41 - 4:45
    עכשיו, אם תרצו, אתם יכולים להשתמש גם בלולאת for אם אתם מעדיפים לולאות for.
  • 4:45 - 4:52
    במקרה של לולאות for, אנחנו נכתוב פשוט: for, ואז var friendNum שווה ל-0.
  • 4:52 - 4:57
    ואז יש לנו את התנאי שלנו - friendNum קטן מ-myFriends.length
  • 4:57 - 5:02
    ואז את פעולת הקידום: 'friendNum++'
  • 5:02 - 5:07
    ואז בתוך לולאת ה-for, אנחנו פשוט שמים את שורת הקוד הזאת.
  • 5:07 - 5:10
    ואני רק אשנה את מיקום ה-x כדי שתוכלו לראות
  • 5:10 - 5:14
    שזה עושה בדיוק את אותו הדבר. זה תלוי בכם באיזה מהם להשתמש, אבל הנקודה היא להשתמש בלולאה עם המערכים שלכם, כי זה נותן לכם הרבה כוח.
Title:
שימוש בלולאות על מערכים (גרסת וידאו) Looping through Arrays (Video Version)
Description:

זהו פשוט צילום מסך של שיעור הקוד האינטראקטיבי שלנו, שהוכן כדי להקל על הכנת כתוביות ותרגום. עדיף לצפות בשיעורים שלנו בכתובת:
https://www.khanacademy.org/cs/programming/

This is just a screen grab of our interactive coding talk-through, prepared to make captioning and translation easier. It is better to watch our talk-throughs here:
https://www.khanacademy.org/cs/programming/

more » « less
Video Language:
English
Duration:
05:22

Hebrew subtitles

Revisions