All language subtitles for 16. Iteration The for Loop

af Afrikaans
sq Albanian
am Amharic
ar Arabic
hy Armenian
az Azerbaijani
eu Basque
be Belarusian
bn Bengali
bs Bosnian
bg Bulgarian
ca Catalan
ceb Cebuano
ny Chichewa
zh-CN Chinese (Simplified)
zh-TW Chinese (Traditional)
co Corsican
hr Croatian
cs Czech
da Danish
nl Dutch
en English
eo Esperanto
et Estonian
tl Filipino
fi Finnish
fr French
fy Frisian
gl Galician
ka Georgian
de German
el Greek
gu Gujarati
ht Haitian Creole
ha Hausa
haw Hawaiian
iw Hebrew
hi Hindi
hmn Hmong
hu Hungarian
is Icelandic
ig Igbo
id Indonesian
ga Irish
it Italian
ja Japanese
jw Javanese
kn Kannada
kk Kazakh
km Khmer
ko Korean
ku Kurdish (Kurmanji)
ky Kyrgyz
lo Lao
la Latin
lv Latvian
lt Lithuanian
lb Luxembourgish
mk Macedonian
mg Malagasy
ms Malay
ml Malayalam
mt Maltese
mi Maori
mr Marathi
mn Mongolian
my Myanmar (Burmese)
ne Nepali
no Norwegian
ps Pashto
fa Persian Download
pl Polish
pt Portuguese
pa Punjabi
ro Romanian
ru Russian
sm Samoan
gd Scots Gaelic
sr Serbian
st Sesotho
sn Shona
sd Sindhi
si Sinhala
sk Slovak
sl Slovenian
so Somali
es Spanish
su Sundanese
sw Swahili
sv Swedish
tg Tajik
ta Tamil
te Telugu
th Thai
tr Turkish
uk Ukrainian
ur Urdu
uz Uzbek
vi Vietnamese
cy Welsh
xh Xhosa
yi Yiddish
yo Yoruba
zu Zulu
or Odia (Oriya)
rw Kinyarwanda
tk Turkmen
tt Tatar
ug Uyghur
Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated: 1 1 00:00:01,380 --> 00:00:04,370 When we talked about the if else statement, 2 2 00:00:04,370 --> 00:00:07,620 I mentioned that it's a control structure, 3 3 00:00:07,620 --> 00:00:12,380 and also that there are more control structures, right? 4 4 00:00:12,380 --> 00:00:16,500 Well, one of the other control structures are loop. 5 5 00:00:16,500 --> 00:00:19,460 And so loops are our final big topic 6 6 00:00:19,460 --> 00:00:21,883 in this JavaScript fundamentals section. 7 7 00:00:23,450 --> 00:00:26,520 So, loops are a fundamental aspect 8 8 00:00:26,520 --> 00:00:28,550 of every programming language, 9 9 00:00:28,550 --> 00:00:30,270 because they basically allow us 10 10 00:00:30,270 --> 00:00:33,070 to automate repetitive tasks. 11 11 00:00:33,070 --> 00:00:37,430 So, tasks that we have to perform over and over again. 12 12 00:00:37,430 --> 00:00:41,000 And here, I like to use the analogy of a gym. 13 13 00:00:41,000 --> 00:00:44,160 So when you go to a gym, you might, for example, 14 14 00:00:44,160 --> 00:00:46,320 lift weights, right? 15 15 00:00:46,320 --> 00:00:49,400 And let's say that you do 10 repetitions 16 16 00:00:49,400 --> 00:00:52,150 of a certain weight lifting exercise. 17 17 00:00:52,150 --> 00:00:55,893 So we could represent that, by doing something like this. 18 18 00:00:59,480 --> 00:01:04,480 So, lifting weights repetition one, 19 19 00:01:10,770 --> 00:01:14,943 and then, some more emojis here. 20 20 00:01:19,220 --> 00:01:21,683 Okay, so repetition one. 21 21 00:01:22,860 --> 00:01:25,740 And remember, we want 10 repetitions. 22 22 00:01:25,740 --> 00:01:30,740 So we would have to paste this code here 10 times, 23 23 00:01:30,900 --> 00:01:35,080 and I don't know, even if this are 10 times or not. 24 24 00:01:35,080 --> 00:01:39,240 But anyway, you can start to guess that this is probably 25 25 00:01:39,240 --> 00:01:42,790 not a best practice, just imagine 26 26 00:01:42,790 --> 00:01:46,700 that we had 30 repetitions instead of just 10. 27 27 00:01:46,700 --> 00:01:50,020 And then if we wanted to, for example, change some word 28 28 00:01:50,020 --> 00:01:52,900 here in the string, then we would have to change 29 29 00:01:52,900 --> 00:01:54,930 that in all of them. 30 30 00:01:54,930 --> 00:01:56,710 So, this really violates 31 31 00:01:56,710 --> 00:02:00,210 the don't repeat yourself principle, right? 32 32 00:02:00,210 --> 00:02:01,690 Because we're basically repeating 33 33 00:02:01,690 --> 00:02:05,010 the same code here 10 times, and all we're changing 34 34 00:02:05,010 --> 00:02:06,693 is just this number. 35 35 00:02:08,790 --> 00:02:12,420 So instead of doing all this, we can now create a loop, 36 36 00:02:12,420 --> 00:02:15,730 and then put one of these lines of code in there. 37 37 00:02:15,730 --> 00:02:19,040 And the loop will then run that code over and over again, 38 38 00:02:19,040 --> 00:02:21,430 until we tell it to stop. 39 39 00:02:21,430 --> 00:02:25,150 And so let's implement a so called for loop now. 40 40 00:02:25,150 --> 00:02:27,840 And that's a loop, which has a counter. 41 41 00:02:27,840 --> 00:02:30,520 So, let's do that. 42 42 00:02:30,520 --> 00:02:34,260 And we simply write for and open parenthesis. 43 43 00:02:34,260 --> 00:02:36,980 So a little bit like the if statement. 44 44 00:02:36,980 --> 00:02:38,860 And this is a for statement. 45 45 00:02:38,860 --> 00:02:41,070 And so it looks similar. 46 46 00:02:41,070 --> 00:02:43,940 Now, the loop statement has three parts. 47 47 00:02:43,940 --> 00:02:48,030 The first part is the initial value of a counter. 48 48 00:02:48,030 --> 00:02:50,990 And in the case of this current example, the counter is 49 49 00:02:50,990 --> 00:02:54,140 the value that will start here at number one, 50 50 00:02:54,140 --> 00:02:57,110 and go all the way to number 10. 51 51 00:02:57,110 --> 00:03:01,170 So let's call this counter rep, which stands for repetition. 52 52 00:03:01,170 --> 00:03:05,623 And so here, we literally create a variable called rep. 53 53 00:03:07,420 --> 00:03:10,950 And we started at one, because well, 54 54 00:03:10,950 --> 00:03:12,773 that's our first repetition. 55 55 00:03:13,620 --> 00:03:16,890 Okay, and here, we need to use a let variable because 56 56 00:03:16,890 --> 00:03:20,253 this counter will later be updated by the for loop. 57 57 00:03:21,860 --> 00:03:25,120 So that's the first part of the for statement, 58 58 00:03:25,120 --> 00:03:28,750 then we use semicolon and go to the second part. 59 59 00:03:28,750 --> 00:03:31,300 And the second part, is a logical condition 60 60 00:03:31,300 --> 00:03:35,410 that is evaluated before each iteration of the loop. 61 61 00:03:35,410 --> 00:03:40,070 So before each time, that the code in the loop is executed. 62 62 00:03:40,070 --> 00:03:42,610 So let me just write it here first, 63 63 00:03:42,610 --> 00:03:45,510 and then this will make more sense. 64 64 00:03:45,510 --> 00:03:49,670 So our condition will be rep needs to stay below 65 65 00:03:49,670 --> 00:03:51,943 or equal 10. 66 66 00:03:52,780 --> 00:03:56,260 So again, this condition that we just described here, 67 67 00:03:56,260 --> 00:03:59,840 will be evaluated before each iteration of the loop. 68 68 00:03:59,840 --> 00:04:02,020 Now, if the condition is true, 69 69 00:04:02,020 --> 00:04:04,700 then the next loop iteration will run. 70 70 00:04:04,700 --> 00:04:08,810 But as soon as this condition is false, then the loop stops. 71 71 00:04:08,810 --> 00:04:12,070 And so no more code will then be executed. 72 72 00:04:12,070 --> 00:04:14,530 So basically, the loop will keep running 73 73 00:04:14,530 --> 00:04:17,220 while this condition stays true. 74 74 00:04:17,220 --> 00:04:19,320 And this is really important to realize. 75 75 00:04:19,320 --> 00:04:22,480 And let me actually write that down here for you. 76 76 00:04:22,480 --> 00:04:27,480 So for loop keeps running, while condition is true. 77 77 00:04:33,010 --> 00:04:35,180 So this is the kind of notes that I hope 78 78 00:04:35,180 --> 00:04:37,410 that you are taking throughout the course. 79 79 00:04:37,410 --> 00:04:38,750 But this one is really important 80 80 00:04:38,750 --> 00:04:41,410 and so, I wanted to write it down. 81 81 00:04:41,410 --> 00:04:45,300 Okay, and so now, I hope it makes sense that we have 82 82 00:04:45,300 --> 00:04:48,570 this condition, because in each iteration of the loop, 83 83 00:04:48,570 --> 00:04:51,090 the rep counter will get increased. 84 84 00:04:51,090 --> 00:04:53,950 And so at a certain point it will reach 10. 85 85 00:04:53,950 --> 00:04:56,390 And with 10 just condition is still true. 86 86 00:04:56,390 --> 00:04:59,560 So 10 is still less or equal than 10. 87 87 00:04:59,560 --> 00:05:02,380 But then, after that it will be 11. 88 88 00:05:02,380 --> 00:05:06,560 And so then repetition is no longer, less or equal 11. 89 89 00:05:06,560 --> 00:05:08,450 And then the loop will stop. 90 90 00:05:08,450 --> 00:05:10,690 And at that point, we will have printed 91 91 00:05:10,690 --> 00:05:13,343 these 10 strings, basically. 92 92 00:05:14,950 --> 00:05:17,500 So let's continue writing this so that in the end, 93 93 00:05:17,500 --> 00:05:19,730 we actually make that work. 94 94 00:05:19,730 --> 00:05:22,243 So, speaking of increasing the counter, 95 95 00:05:22,243 --> 00:05:25,900 that is actually the third part of the for statement. 96 96 00:05:25,900 --> 00:05:28,860 So, another semicolon here. 97 97 00:05:28,860 --> 00:05:30,660 And now here, we actually update 98 98 00:05:30,660 --> 00:05:33,170 the counter after each iteration. 99 99 00:05:33,170 --> 00:05:35,570 So that's necessary, because right now, 100 100 00:05:35,570 --> 00:05:39,000 the counter would just stay at one forever. 101 101 00:05:39,000 --> 00:05:42,400 And so this condition here would never be false. 102 102 00:05:42,400 --> 00:05:45,780 And so what we do here, is to now increase the counter 103 103 00:05:45,780 --> 00:05:48,290 by one after each iteration. 104 104 00:05:48,290 --> 00:05:53,290 So, we can say rep equal rep plus one. 105 105 00:05:55,120 --> 00:05:57,063 But does this look familiar to you. 106 106 00:05:58,650 --> 00:06:02,530 So, basically increasing the value by just one. 107 107 00:06:02,530 --> 00:06:04,300 Remember that in the last section, 108 108 00:06:04,300 --> 00:06:06,780 we actually learned about a special operator, 109 109 00:06:06,780 --> 00:06:10,250 which does just this, but in a much simpler way. 110 110 00:06:10,250 --> 00:06:14,120 So instead of writing rep equal rep plus one, 111 111 00:06:14,120 --> 00:06:18,660 we can simply write, rep plus plus. 112 112 00:06:18,660 --> 00:06:22,760 And so this will take the rep value, and increase it by one. 113 113 00:06:22,760 --> 00:06:26,510 Alright, and now all we have to do, is to write the code 114 114 00:06:26,510 --> 00:06:28,980 that we want to be repeated. 115 115 00:06:28,980 --> 00:06:31,663 And so let's copy this string here. 116 116 00:06:35,230 --> 00:06:38,990 Okay, and let's say one, and then it will print 117 117 00:06:38,990 --> 00:06:41,330 this string 10 times. 118 118 00:06:41,330 --> 00:06:42,540 So let's start with that. 119 119 00:06:42,540 --> 00:06:44,650 And then afterwards, I will show you 120 120 00:06:44,650 --> 00:06:47,950 how we can actually update this number here. 121 121 00:06:47,950 --> 00:06:50,710 But for now, let's try this out. 122 122 00:06:50,710 --> 00:06:53,350 And actually let's comment this code out, 123 123 00:06:53,350 --> 00:06:55,250 so that it doesn't get in our way. 124 124 00:06:55,250 --> 00:06:57,653 So, comment slash for that. 125 125 00:06:59,580 --> 00:07:00,913 And let's go. 126 126 00:07:02,300 --> 00:07:07,300 And indeed, we see that the string was printed 10 times, 127 127 00:07:07,800 --> 00:07:10,360 that's what this 10 here stands for. 128 128 00:07:10,360 --> 00:07:14,010 So the dev tools will not print the same string 10 times, 129 129 00:07:14,010 --> 00:07:16,620 it will simply put this 10 here. 130 130 00:07:16,620 --> 00:07:20,523 But what matters, is that this logic here actually worked. 131 131 00:07:21,990 --> 00:07:25,490 So now, let's actually use this counter variable 132 132 00:07:25,490 --> 00:07:28,810 that we created here, to actually increase the number 133 133 00:07:28,810 --> 00:07:30,883 in the string that we're printing out. 134 134 00:07:31,810 --> 00:07:34,160 So, how do you think we will do that? 135 135 00:07:34,160 --> 00:07:37,610 Well, it's actually simple, all we have to do is to replace 136 136 00:07:37,610 --> 00:07:41,810 this number here, with the current value of the counter, 137 137 00:07:41,810 --> 00:07:44,380 because this variable that we defined here, 138 138 00:07:44,380 --> 00:07:47,950 so this rep variable, it's just a normal variable. 139 139 00:07:47,950 --> 00:07:51,193 And it's gonna be available here inside of this code block. 140 140 00:07:53,090 --> 00:07:56,010 So, let's transform this to a template string, 141 141 00:07:56,010 --> 00:07:59,663 so that we can then insert that variable, into the string. 142 142 00:08:02,200 --> 00:08:05,070 So, we get rid of the hard coded value. 143 143 00:08:05,070 --> 00:08:08,373 And now we basically dynamically built the string. 144 144 00:08:09,230 --> 00:08:14,230 And so here, all we need to do is to put the rep variable. 145 145 00:08:14,320 --> 00:08:19,320 And now we get exactly what we wrote here manually 146 146 00:08:19,910 --> 00:08:22,720 in the beginning, alright? 147 147 00:08:22,720 --> 00:08:24,200 So that works. 148 148 00:08:24,200 --> 00:08:27,723 And so let's recap exactly what we did here. 149 149 00:08:28,950 --> 00:08:32,060 So, we wanted to look our string here. 150 150 00:08:32,060 --> 00:08:35,500 So a string like this 10 times, but of course, 151 151 00:08:35,500 --> 00:08:38,590 it could be any other repetitive operation. 152 152 00:08:38,590 --> 00:08:41,300 Again, we're just using console dot log here, 153 153 00:08:41,300 --> 00:08:45,280 so that we can see the result in the developer console. 154 154 00:08:45,280 --> 00:08:47,690 Anyway, in order to solve this problem 155 155 00:08:47,690 --> 00:08:51,530 of not having to repeat the same code over and over again, 156 156 00:08:51,530 --> 00:08:53,580 we use a for loop. 157 157 00:08:53,580 --> 00:08:58,040 And so, we initialized the counter of the loop at one. 158 158 00:08:58,040 --> 00:09:01,490 So right here, we created this new rep variable. 159 159 00:09:01,490 --> 00:09:04,960 And rep again, stands for repetition, but it could be any 160 160 00:09:04,960 --> 00:09:07,350 other variable name, of course. 161 161 00:09:07,350 --> 00:09:11,050 And so we started at one, because well we wanted to start 162 162 00:09:11,050 --> 00:09:12,760 at repetition number one. 163 163 00:09:12,760 --> 00:09:16,223 But, we could also start of course, at repetition five. 164 164 00:09:17,500 --> 00:09:20,090 So let's see how that looks like. 165 165 00:09:20,090 --> 00:09:23,820 And then, as you might have expected, the first repetition 166 166 00:09:23,820 --> 00:09:27,000 that's printed is the number five, okay. 167 167 00:09:27,000 --> 00:09:29,710 But let's put it back to one now. 168 168 00:09:29,710 --> 00:09:33,610 So after each iteration of the loop, we then increase 169 169 00:09:33,610 --> 00:09:37,690 this counter value, by exactly one, and this happens 170 170 00:09:37,690 --> 00:09:40,090 by the end of the iteration. 171 171 00:09:40,090 --> 00:09:44,020 So in the first iteration, this string here is locked to 172 172 00:09:44,020 --> 00:09:46,700 the console with the current repetition, 173 173 00:09:46,700 --> 00:09:50,670 which stands at one, so this here will be replaced by one 174 174 00:09:50,670 --> 00:09:55,160 and then afterwards, the rep counter will be updated to two. 175 175 00:09:55,160 --> 00:09:57,950 Then in the next iteration, this same string here 176 176 00:09:57,950 --> 00:10:01,063 is printed, but now with rep at number two, 177 177 00:10:01,980 --> 00:10:05,700 then rep is updated from two to three, and so on 178 178 00:10:05,700 --> 00:10:06,960 and so forth. 179 179 00:10:06,960 --> 00:10:10,300 And this loops keep running, while the rep variable 180 180 00:10:10,300 --> 00:10:12,750 is less or equal 10. 181 181 00:10:12,750 --> 00:10:16,900 So basically, while this condition here is true, and that's 182 182 00:10:16,900 --> 00:10:20,070 how we achieve exactly 10 repetitions. 183 183 00:10:20,070 --> 00:10:24,960 So, what the loop does, is to verify before each repetition, 184 184 00:10:24,960 --> 00:10:29,330 if all condition here still holds true, and only if it does, 185 185 00:10:29,330 --> 00:10:30,940 it will keep running the loop. 186 186 00:10:30,940 --> 00:10:33,530 So it will execute the next iteration. 187 187 00:10:33,530 --> 00:10:36,150 And so it will execute this block of code here 188 188 00:10:36,150 --> 00:10:37,800 one more time. 189 189 00:10:37,800 --> 00:10:40,620 And of course we could change it to something else. 190 190 00:10:40,620 --> 00:10:42,700 Let's put it at 30. 191 191 00:10:42,700 --> 00:10:47,700 And then, we should get, indeed 30 repetitions 192 192 00:10:48,190 --> 00:10:53,190 of the same string, where only this counter here is changed. 193 193 00:10:53,340 --> 00:10:57,110 Alright, and in a nutshell, that's how the for loop 194 194 00:10:57,110 --> 00:10:59,040 works in JavaScript. 195 195 00:10:59,040 --> 00:11:02,190 In the next few videos, we will see some more useful 196 196 00:11:02,190 --> 00:11:04,710 applications of the for loop. 197 197 00:11:04,710 --> 00:11:06,983 And also talk about another type of loop 198 198 00:11:06,983 --> 00:11:08,993 that we have in JavaScript. 17744

Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.