WEBVTT 00:00:01.686 --> 00:00:04.237 אבן חן, אבן חן די מתוקה! 00:00:04.237 --> 00:00:08.275 אבל אתם יודעים מה יותר טוב מאבן אחת, שורה שלמה של אבני חן! 00:00:08.275 --> 00:00:12.562 וכמובן, עכשיו אנחנו יודעים את הדרך הטובה ביותר ליצור שורה של אבני חן, בעזרת לולאה. 00:00:12.562 --> 00:00:16.162 אז בואו נשתמש בלולאה כדי ליצור 12 אבני חן בשורה. 00:00:16.162 --> 00:00:19.523 משמאל לימין על פני המסך. 00:00:19.523 --> 00:00:22.304 אז כך 00:00:22.304 --> 00:00:31.186 for(var i שווה 0; i פחות מ- 12;i פלוס פלוס) 00:00:31.186 --> 00:00:36.429 ואנחנו ניקח את השורה הזאת ונעביר לכאן. 00:00:36.429 --> 00:00:40.305 אז עכשיו יש לנו 12 אבנים אבל הם בעצם כולם נערמו ממש אחד מעל השני. 00:00:40.305 --> 00:00:43.401 זכרו, אנחנו רוצים אותם לאורך המסך. 00:00:43.401 --> 00:00:45.941 זה אומר שאנחנו רוצים לשנות את ה-X 00:00:45.941 --> 00:00:49.524 36 זה ה-X עכשיו, אבל אנחנו רוצים אותו שונה בכל פעם. 00:00:49.524 --> 00:00:51.859 זה אומר שאנחנו רוצים שהוא יהיה תלוי ב-i 00:00:51.859 --> 00:00:56.329 אז מה שנוכל לעשות זה פשוט לכתוב i כפול 36 . 00:00:56.329 --> 00:01:02.687 אז הראשון הוא ב 0, ולאחר מכן 36, אז 72, וכו'. 00:01:02.687 --> 00:01:04.575 מגניב! עכשיו יש לנו שורה של אבני חן. 00:01:04.575 --> 00:01:07.997 וזה סוג של מזכיר לי את הסצנות האלה באינדיאנה ג'ונס או אלדין 00:01:07.997 --> 00:01:11.306 שבו הגיבור מגלה אוצר מתחת לאדמה של אבני חן 00:01:11.306 --> 00:01:13.732 אבל הם בדרך כלל מוצאים הרבה יותר אבני חן מזה. 00:01:13.732 --> 00:01:17.306 לא רק שורה של אבני חן, אלא ערימה של אבני חן! 00:01:17.306 --> 00:01:21.609 אז איך נוכל לגרום לאבני החן לרדת 00:01:21.609 --> 00:01:24.806 כל הדרך לתחתית המסך? 00:01:24.806 --> 00:01:30.639 ובכן אנחנו יכולים להתחיל על ידי חזרה על הלולאה בעזרת העתק הדבק. 00:01:30.639 --> 00:01:34.565 ולשנות את ה-Y בכל פעם 00:01:34.565 --> 00:01:37.688 ונשנה את זה ל-60 ואז -90. 00:01:37.688 --> 00:01:42.308 ועכשיו יש לנו שלוש שורות של אבני חן, מגניב. 00:01:42.308 --> 00:01:45.495 אך זה נהיה ממש משעמם כיוון שכל מה שאני עושה זה 00:01:45.495 --> 00:01:49.193 העתק הדבק ושינוי דבר אחד קטן. 00:01:49.193 --> 00:01:52.859 ובדרך כלל בעבר כאשר מצאנו את עצמנו כותבים קוד שחוזר על עצמו כמו זה 00:01:52.859 --> 00:01:57.025 היינו חושבים, "אולי פשוט נשתמש בלולאה במקום" 00:01:57.025 --> 00:01:58.607 אבל אנחנו כבר משתמשים בלולאה. 00:01:58.607 --> 00:02:03.854 אז מה הפיתרון כדי להימנע מלכתוב כך, אתם יודעים, העתק-הדבק? 00:02:03.854 --> 00:02:09.518 ובכן לזה אנחנו קוראים "לולאה מקוננת", לולאה בתוך לולאה 00:02:09.518 --> 00:02:12.132 אז מה שאנחנו הולכים לעשות זה להכין לולאה חיצונית 00:02:12.132 --> 00:02:14.851 וזה מה שהולך לדאוג לירידה לתחתית המסך 00:02:14.851 --> 00:02:19.234 והלולאה הפנימית שלנו תדאג לעשות את מה שהיא עושה עכשיו 00:02:19.234 --> 00:02:21.977 שזה ללכת משמאל לימין. 00:02:21.977 --> 00:02:24.006 תנו לי להראות לכם למה אני מתכוונת. 00:02:24.006 --> 00:02:29.851 אז לולאת for - ונשתמש במשתנה אחר הפעם, נקרא לו j , כיוון ואנחנו כבר משתמשים ב-i 00:02:29.851 --> 00:02:37.274 for(var j שווה 0; j פחות מ- 13; j פלוס פלוס) 00:02:37.274 --> 00:02:41.999 אוקיי, אז זו הולכת להיות הלולאה החיצונית שלנו, שאחראית על הולכה מלמעלה למטה. 00:02:41.999 --> 00:02:48.237 ואז אנחנו רק הולכים לקחת אחת מהלולאות הקודמות שלנו ולשים אותה בפנים 00:02:48.237 --> 00:02:53.274 ולתקן את מה שלא נחוץ, נמחק את הישנות. 00:02:53.274 --> 00:02:59.109 אז עכשיו יש לנו את כולם נערמו על גבי שורה אחת. 00:02:59.109 --> 00:03:01.969 אז אנחנו רוצים לשנות את ה-Y , נכון? 00:03:01.969 --> 00:03:04.309 זה מה ששינינו מקודם, כאשר עשינו העתק-הדבק 00:03:04.309 --> 00:03:06.108 ועכשיו, ה-Y תמיד 90 00:03:06.108 --> 00:03:09.440 אנחנו רוצים ש-Y ישתנה בכל שורה. 00:03:09.440 --> 00:03:16.188 זה בדיוק כמו ש-X תלוי ב-i, אנחנו רוצים את Y שיהיה תלוי ב-j. 00:03:16.188 --> 00:03:24.663 נוכל ללכת קדימה ולשנות את זה למשהו כמו, אולי, j כפול 30. 00:03:24.663 --> 00:03:29.934 מעולה! כל כך הרבה אבני חן! 00:03:29.934 --> 00:03:31.776 בואו נראה מה זה עושה, שוב. 00:03:31.776 --> 00:03:38.340 הלולאה החיצונית יוצרת משתנה j ומגדילה אותו עד 13. 00:03:38.340 --> 00:03:44.340 בכל ביצוע של הלולאה החיצונית, זה מריץ את הלולאה הפנימית. 00:03:44.340 --> 00:03:48.673 הלולאה הפנימית יוצרת משתנה i שגדל עד ל-12. 00:03:48.673 --> 00:03:55.358 ובעבור כל ביצוע של הלולאה הפנימית, היא מציירת תמונה במיקום x ו-y שמבוסס על i ו-j. 00:03:55.358 --> 00:03:59.607 וה-i משתנה בתדירות גבוה יותר מה-j בגלל זה 00:03:59.607 --> 00:04:05.238 בכדי לנסות להבין זאת אפילו טוב יותר, בואו ננסה להמחיש את ערכי i ו-j . 00:04:05.238 --> 00:04:09.277 אז מה שאני יעשה זה תגובה מתוך תמונה 00:04:09.277 --> 00:04:12.027 ואז קבע צבע מילוי 00:04:12.027 --> 00:04:16.796 ואני הולכת להשתמש בפקודת text כדי להראות את ערכו של j - אז text j 00:04:16.796 --> 00:04:22.025 ואני אכתוב את זה בנקודה המתאימה. אוקיי 00:04:22.025 --> 00:04:26.009 עכשיו נוכל לראות j הולך מ-0 ל-12. 00:04:26.009 --> 00:04:32.019 זהו בעצם איפה שהשורות של אבניהחן שלנו הוצבו גם כן. 00:04:32.019 --> 00:04:35.684 עכשיו נמחיש את i ונראה איך זה משתנה 00:04:35.684 --> 00:04:43.066 אז ל-i, נבחר צבע שונה. 00:04:43.066 --> 00:04:46.475 נשים את ה-i במקומו 00:04:46.475 --> 00:04:50.271 נשנה את ה-x שלו כדי שילך לאורך כל המסך. 00:04:50.271 --> 00:04:54.688 נעשה אותו דבר עם y. 00:04:54.688 --> 00:04:59.561 עכשיו נוכל לראות ש-i הולך מ-0 ל-11 00:04:59.561 --> 00:05:04.686 וה-i כפי שאמרתי, משתנה בתדירות גבוהה יותר. 00:05:04.686 --> 00:05:08.778 ושורה זו של הקוד מבוצעת הרבה יותר פעמים מהשורה הזו של הקוד. 00:05:08.778 --> 00:05:13.855 כיוון ושורה זו של הקוד מבוצעת בכל ביצוע של הלולאה הפנימית. 00:05:13.855 --> 00:05:19.527 בעוד שהשורה הזאת של הקוד מבוצעת רק עבור ביצוע של הלולאה החיצונית. 00:05:19.527 --> 00:05:22.140 אז זאת המחשה של i ו-j 00:05:22.140 --> 00:05:26.973 בתקווה שזה עזר לכם להבין טוב יותר מה קורה בלולאות מקוונות. 00:05:26.973 --> 00:05:30.475 עכשיו בואו נחזיר את אבני החן, כיוון והן מגניבות יותר! 00:05:30.475 --> 00:05:34.066 אז יש הרבה שתוכלו לעשות בעזרת לולאות for מקוונות 00:05:34.066 --> 00:05:37.232 אם אתם רק תחשבו על כל דבר בעולם 00:05:37.232 --> 00:05:39.599 שנראה כמו לוח דו מימדי, כמו לוח שחמט, 00:05:39.599 --> 00:05:44.564 הכוכבים על דגל ארה"ב, דפוסים וטפטים מגניבים 00:05:44.564 --> 00:05:47.462 כדי להתחיל את הדמיון שלכם, פשוט שחקו עם הקוד הזה 00:05:47.462 --> 00:05:49.806 כמו על ידי שינוי התמונה. 00:05:49.806 --> 00:05:53.796 אני אתחיל בשינוי התמונה ללב! 00:05:53.796 --> 00:05:57.796 כדי להראות לכם כמה אני אוהבת לולאות for מקוננות!