שימוש בלולאות על מערכים (גרסת וידאו) 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/ - Video Language:
- English
- Duration:
- 05:22
רועי חרמוני edited Hebrew subtitles for Looping through Arrays (Video Version) | ||
nataly.eliyahu edited Hebrew subtitles for Looping through Arrays (Video Version) | ||
nataly.eliyahu edited Hebrew subtitles for Looping through Arrays (Video Version) | ||
nataly.eliyahu edited Hebrew subtitles for Looping through Arrays (Video Version) | ||
nataly.eliyahu edited Hebrew subtitles for Looping through Arrays (Video Version) |