Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated:
1
00:00:01,280 --> 00:00:02,910
‫Welcome back.
2
00:00:02,910 --> 00:00:05,510
‫Let's now make coding even more fun
3
00:00:05,510 --> 00:00:08,330
‫and actually take decisions with our code
4
00:00:08,330 --> 00:00:10,883
‫to make it look a lot more real.
5
00:00:12,320 --> 00:00:15,220
‫So let's say it that we want to write a program
6
00:00:15,220 --> 00:00:16,990
‫which checks whether a person
7
00:00:16,990 --> 00:00:21,030
‫is allowed to start taking a driver's license or not.
8
00:00:21,030 --> 00:00:24,520
‫And if she is, then it will print that to the console.
9
00:00:24,520 --> 00:00:28,130
‫And if not, it will print how many years are left
10
00:00:28,130 --> 00:00:31,593
‫until the person can start taking the driver's license.
11
00:00:32,760 --> 00:00:37,760
‫So let's start with an age and let's set it to 19.
12
00:00:38,480 --> 00:00:40,930
‫So we have this age and we already know
13
00:00:40,930 --> 00:00:44,640
‫how to check if this age is at least 18,
14
00:00:44,640 --> 00:00:48,810
‫which is the legal required age to start a driving license
15
00:00:48,810 --> 00:00:50,780
‫at least here in Europe.
16
00:00:50,780 --> 00:00:53,423
‫So let's actually create a variable with that.
17
00:00:54,710 --> 00:00:57,300
‫And I think we actually already did that.
18
00:00:57,300 --> 00:00:59,417
‫Let's call this one 'is old enough'.
19
00:01:00,540 --> 00:01:03,250
‫So again, with a variable name
20
00:01:03,250 --> 00:01:05,473
‫that describes exactly what we want here.
21
00:01:06,900 --> 00:01:11,010
‫So remember to check if the age is at least 18,
22
00:01:11,010 --> 00:01:16,010
‫we need it to be greater or equal than 18.
23
00:01:16,620 --> 00:01:19,140
‫And so this will then include 18.
24
00:01:19,140 --> 00:01:22,950
‫So if the age is 18, the result of this operator here
25
00:01:22,950 --> 00:01:25,660
‫or of this operation will then be true.
26
00:01:25,660 --> 00:01:29,810
‫Only if the age is 17 or 16 or anything below,
27
00:01:29,810 --> 00:01:31,573
‫it will turn out to be false.
28
00:01:32,410 --> 00:01:33,370
‫Okay.
29
00:01:33,370 --> 00:01:35,550
‫So we have a Boolean value now,
30
00:01:35,550 --> 00:01:36,870
‫and we can use this
31
00:01:36,870 --> 00:01:40,680
‫to take decisions using an 'if statement'
32
00:01:40,680 --> 00:01:43,300
‫and the 'if statement' works like this.
33
00:01:43,300 --> 00:01:47,880
‫All we have to do is write 'if' then open parenthesis
34
00:01:47,880 --> 00:01:51,650
‫and then in here goes a condition that is evaluated.
35
00:01:51,650 --> 00:01:54,250
‫And if this condition turns out to be true,
36
00:01:54,250 --> 00:01:57,530
‫then this block will be executed.
37
00:01:57,530 --> 00:01:59,720
‫So basically whatever code that we write
38
00:01:59,720 --> 00:02:02,380
‫into this block, which is denoted by
39
00:02:02,380 --> 00:02:04,690
‫these curly braces will be executed
40
00:02:04,690 --> 00:02:08,320
‫whenever the condition that's here is true.
41
00:02:08,320 --> 00:02:09,581
‫So in this case, let's put the condition,
42
00:02:09,581 --> 00:02:13,360
‫and with condition I basically mean something
43
00:02:13,360 --> 00:02:15,400
‫that is a Boolean value.
44
00:02:15,400 --> 00:02:18,840
‫So let's use, 'or is old enough' variable here
45
00:02:18,840 --> 00:02:22,200
‫because we already know that this will always be a Boolean.
46
00:02:22,200 --> 00:02:25,813
‫So again, whenever this value here is true
47
00:02:25,813 --> 00:02:29,750
‫then the code that's in this block here will be executed.
48
00:02:29,750 --> 00:02:34,080
‫And if it's false, well, then it's not going to be executed.
49
00:02:34,080 --> 00:02:37,763
‫So let's log to the console.
50
00:02:40,280 --> 00:02:44,023
‫Sarah can start driving license
51
00:02:46,880 --> 00:02:49,300
‫and let's just add a fun emoji here
52
00:02:50,660 --> 00:02:54,700
‫and on the Mac, that's Command + Control + Space
53
00:02:54,700 --> 00:02:57,860
‫and on Windows 10, the shortcut is Windows + .
54
00:02:57,860 --> 00:03:00,763
‫but, adding the emoji here is not really important.
55
00:03:01,800 --> 00:03:05,373
‫So let's give it a safe and try this out now.
56
00:03:06,630 --> 00:03:11,350
‫And indeed we get, Sarah can start her driving license
57
00:03:11,350 --> 00:03:14,380
‫and that's because the age is 19.
58
00:03:14,380 --> 00:03:16,620
‫And so it's above 18.
59
00:03:16,620 --> 00:03:18,490
‫So this is true.
60
00:03:18,490 --> 00:03:21,610
‫And so if 'is old enough' is true
61
00:03:21,610 --> 00:03:25,030
‫then this block of code here will be executed
62
00:03:25,030 --> 00:03:27,360
‫which in this case is just one line
63
00:03:27,360 --> 00:03:30,150
‫but it could of course be multiple lines.
64
00:03:30,150 --> 00:03:33,010
‫So now let's put it to something else.
65
00:03:33,010 --> 00:03:34,360
‫So 15.
66
00:03:34,360 --> 00:03:36,520
‫And so now this is false.
67
00:03:36,520 --> 00:03:41,520
‫And so then this code block here should not be executed.
68
00:03:41,690 --> 00:03:44,030
‫So give it a safe, let's try.
69
00:03:44,030 --> 00:03:46,573
‫And indeed we get no output this time.
70
00:03:47,580 --> 00:03:50,373
‫And so that means that it worked.
71
00:03:51,420 --> 00:03:53,900
‫So let's put it back to 19.
72
00:03:53,900 --> 00:03:54,800
‫And in practice,
73
00:03:54,800 --> 00:03:59,280
‫we always write this condition directly here.
74
00:03:59,280 --> 00:04:01,180
‫So let's do that.
75
00:04:01,180 --> 00:04:04,530
‫So what we want is just this part.
76
00:04:04,530 --> 00:04:06,690
‫So let's get rid of this.
77
00:04:06,690 --> 00:04:09,790
‫And so this is a lot more common.
78
00:04:09,790 --> 00:04:11,570
‫Let's actually getting rid of this.
79
00:04:11,570 --> 00:04:14,980
‫And so we basically do this operation here.
80
00:04:14,980 --> 00:04:17,170
‫This will then return true or false.
81
00:04:17,170 --> 00:04:18,410
‫And depending on that,
82
00:04:18,410 --> 00:04:21,430
‫this code block will then be executed.
83
00:04:21,430 --> 00:04:24,010
‫And actually let's put it back to 15
84
00:04:24,010 --> 00:04:26,130
‫because now we can do something else
85
00:04:26,130 --> 00:04:29,840
‫which is to actually add an 'else' block.
86
00:04:29,840 --> 00:04:30,720
‫And we do that simply
87
00:04:30,720 --> 00:04:35,383
‫by writing else right after this first, 'if' block,
88
00:04:35,383 --> 00:04:37,160
‫and then we add another block.
89
00:04:37,160 --> 00:04:40,230
‫So what do you think this 'else' block is for?
90
00:04:40,230 --> 00:04:43,800
‫Well, this 'else' block will basically be executed
91
00:04:43,800 --> 00:04:47,090
‫whenever this condition here is false.
92
00:04:47,090 --> 00:04:49,500
‫So right now the age is below 18.
93
00:04:49,500 --> 00:04:50,830
‫And so this is false.
94
00:04:50,830 --> 00:04:52,240
‫And so as we already know,
95
00:04:52,240 --> 00:04:54,940
‫this block here will not be executed.
96
00:04:54,940 --> 00:04:57,800
‫Instead, the 'else' block will be executed.
97
00:04:57,800 --> 00:05:00,190
‫So whatever code we have here.
98
00:05:00,190 --> 00:05:02,510
‫So let's write some code in here.
99
00:05:02,510 --> 00:05:03,930
‫And as I sad in the beginning,
100
00:05:03,930 --> 00:05:06,290
‫we will calculate how many years are left
101
00:05:06,290 --> 00:05:09,820
‫for Sarah to start taking her license.
102
00:05:09,820 --> 00:05:13,560
‫So let's calculate that, 'years left'.
103
00:05:15,610 --> 00:05:20,133
‫And so that's simply, 18 minus the age.
104
00:05:21,360 --> 00:05:22,193
‫Right?
105
00:05:23,950 --> 00:05:26,520
‫And then we can log in a nice string into the console,
106
00:05:26,520 --> 00:05:29,070
‫which contains this variable.
107
00:05:29,070 --> 00:05:31,030
‫And as we learned in the last lecture
108
00:05:31,030 --> 00:05:34,720
‫the best way of doing that is to use a template literal.
109
00:05:34,720 --> 00:05:36,290
‫So back ticks.
110
00:05:36,290 --> 00:05:41,047
‫And then we say, Sarah is too young'.
111
00:05:42,160 --> 00:05:44,193
‫'Wait another'
112
00:05:45,630 --> 00:05:50,050
‫and then we insert or placeholder here basically.
113
00:05:50,050 --> 00:05:51,480
‫So years left
114
00:05:53,140 --> 00:05:55,700
‫and then years.
115
00:05:55,700 --> 00:05:57,330
‫Okay.
116
00:05:57,330 --> 00:06:02,330
‫So the result of this should be 18 minus 15, which is 3.
117
00:06:03,290 --> 00:06:06,320
‫And so we should see 'Wait another 3 years".
118
00:06:06,320 --> 00:06:07,453
‫So let's checked that.
119
00:06:09,060 --> 00:06:12,180
‫And indeed, that's exactly what we got.
120
00:06:12,180 --> 00:06:15,270
‫And so again, since this condition here
121
00:06:15,270 --> 00:06:18,920
‫so this operation basically turned out to be false
122
00:06:18,920 --> 00:06:22,350
‫then this block of code was executed.
123
00:06:22,350 --> 00:06:23,270
‫Great.
124
00:06:23,270 --> 00:06:25,180
‫Just keep in mind that this 'else' block
125
00:06:25,180 --> 00:06:27,340
‫is actually optional, right?
126
00:06:27,340 --> 00:06:29,840
‫So in the beginning we didn't have this 'else' block
127
00:06:29,840 --> 00:06:31,550
‫and it still did work.
128
00:06:31,550 --> 00:06:33,310
‫So when there is no 'else' block,
129
00:06:33,310 --> 00:06:36,730
‫JavaScript will then simply move on to the next line
130
00:06:36,730 --> 00:06:38,200
‫after the, 'if' statement
131
00:06:38,200 --> 00:06:41,390
‫in case that the condition is false.
132
00:06:41,390 --> 00:06:42,223
‫Great.
133
00:06:42,223 --> 00:06:44,820
‫Now, you know what an 'if', 'else' statement is
134
00:06:44,820 --> 00:06:46,680
‫and how it works.
135
00:06:46,680 --> 00:06:49,420
‫And this is actually one of the most important things
136
00:06:49,420 --> 00:06:50,640
‫in programming.
137
00:06:50,640 --> 00:06:52,930
‫We take decisions with code all the time
138
00:06:52,930 --> 00:06:55,290
‫which is essentially what we did here
139
00:06:55,290 --> 00:06:58,400
‫so that we can execute certain parts of our program
140
00:06:58,400 --> 00:07:00,740
‫based on certain conditions.
141
00:07:00,740 --> 00:07:01,820
‫Okay.
142
00:07:01,820 --> 00:07:04,780
‫Now what we have here is 'if', 'else' statement,
143
00:07:04,780 --> 00:07:06,380
‫which is the official name
144
00:07:06,380 --> 00:07:09,160
‫of this kind of construction here,
145
00:07:09,160 --> 00:07:10,993
‫is called a control structure.
146
00:07:12,170 --> 00:07:13,250
‫So basically this
147
00:07:16,658 --> 00:07:19,400
‫if this structure here is called an 'if', 'else'
148
00:07:19,400 --> 00:07:20,946
‫control structure
149
00:07:20,946 --> 00:07:23,590
‫and it is called a control structure
150
00:07:23,590 --> 00:07:26,050
‫because this structure actually allows us
151
00:07:26,050 --> 00:07:30,850
‫to have more control over the way that our code is executed.
152
00:07:30,850 --> 00:07:33,120
‫For example, in this, 'if', 'else' statement
153
00:07:33,120 --> 00:07:36,820
‫the whole code does not just execute in a linear way.
154
00:07:36,820 --> 00:07:39,430
‫So JavaScript does not execute
155
00:07:39,430 --> 00:07:41,600
‫all of this code here, linearly.
156
00:07:41,600 --> 00:07:44,590
‫Instead we can now control blocks of code
157
00:07:44,590 --> 00:07:46,010
‫that should execute
158
00:07:46,010 --> 00:07:48,620
‫and blocks that should not execute.
159
00:07:48,620 --> 00:07:51,120
‫And so again that gives us a lot more control
160
00:07:51,120 --> 00:07:52,990
‫over how our code works
161
00:07:52,990 --> 00:07:55,603
‫and that's why this is called a control structure.
162
00:07:56,670 --> 00:07:57,503
‫Okay.
163
00:07:57,503 --> 00:07:59,100
‫And there are other control structures
164
00:07:59,100 --> 00:08:00,950
‫that we're gonna go into a bit later.
165
00:08:01,790 --> 00:08:02,623
‫All right.
166
00:08:02,623 --> 00:08:06,620
‫So I hope that you can see how this really takes our code
167
00:08:06,620 --> 00:08:08,520
‫to the next level.
168
00:08:08,520 --> 00:08:09,500
‫Now just to make sure
169
00:08:09,500 --> 00:08:11,570
‫that you really understood this concept
170
00:08:11,570 --> 00:08:15,470
‫let's create another, a very small and simple example here.
171
00:08:15,470 --> 00:08:19,430
‫And this time let's actually create a variable conditionally
172
00:08:19,430 --> 00:08:22,730
‫and not just always use''console.log'.
173
00:08:22,730 --> 00:08:27,150
‫So let's create a birth year variable.
174
00:08:27,150 --> 00:08:31,223
‫I think we don't have it in this lecture yet.
175
00:08:32,100 --> 00:08:33,313
‫That's right.
176
00:08:34,680 --> 00:08:36,060
‫And so now what we want to do
177
00:08:36,060 --> 00:08:39,030
‫is to create a variable called 'century'
178
00:08:39,030 --> 00:08:41,950
‫which will basically contain the century
179
00:08:41,950 --> 00:08:44,320
‫in which this person was born.
180
00:08:44,320 --> 00:08:48,030
‫So in this case, it was the 20th century.
181
00:08:48,030 --> 00:08:50,490
‫But for example, if the person was born
182
00:08:50,490 --> 00:08:55,380
‫in, like, let's say 2015, then it would be the 21st century.
183
00:08:55,380 --> 00:08:57,370
‫So to do that, we can, of course write
184
00:08:57,370 --> 00:08:58,763
‫an 'if', 'else' statement,
185
00:09:00,450 --> 00:09:05,450
‫so we can say if the birth year is below
186
00:09:06,670 --> 00:09:08,383
‫or equal to 2000,
187
00:09:10,380 --> 00:09:13,880
‫then let century equal 20.
188
00:09:17,730 --> 00:09:20,423
‫And so that then means the 20th century.
189
00:09:22,690 --> 00:09:26,923
‫And if not, then let century be 21.
190
00:09:32,010 --> 00:09:35,130
‫So we're assuming that the person is not born
191
00:09:35,130 --> 00:09:38,210
‫in the 19th century.
192
00:09:38,210 --> 00:09:42,870
‫So we're not accounting for something like this,
193
00:09:42,870 --> 00:09:44,190
‫for example.
194
00:09:44,190 --> 00:09:47,293
‫So instead we always have the 20th or the 21st century.
195
00:09:49,040 --> 00:09:50,990
‫Now to actually make this work
196
00:09:50,990 --> 00:09:54,310
‫we need to define the century variable outside
197
00:09:54,310 --> 00:09:56,620
‫of the, 'if' or 'else' blocks.
198
00:09:56,620 --> 00:09:59,260
‫We will go deeply into why that is
199
00:09:59,260 --> 00:10:01,640
‫but for now, what you need to know is
200
00:10:01,640 --> 00:10:04,400
‫that this is because a variable that we define
201
00:10:04,400 --> 00:10:09,060
‫inside of any code block, which is what this year is,
202
00:10:09,060 --> 00:10:12,350
‫so this is a code block, and this is a code block.
203
00:10:12,350 --> 00:10:13,990
‫And any variable that we declare
204
00:10:13,990 --> 00:10:17,050
‫inside of one of these blocks will not be accessible
205
00:10:17,050 --> 00:10:19,500
‫outside of the block.
206
00:10:19,500 --> 00:10:22,693
‫So let me just show that to you very quickly.
207
00:10:24,400 --> 00:10:28,422
‫So if I try to read 'century' now, then I will get a
208
00:10:28,422 --> 00:10:33,422
‫an error here, you see, century is not defined.
209
00:10:33,440 --> 00:10:37,950
‫And so what we need to do is to define 'century' outside
210
00:10:37,950 --> 00:10:39,750
‫and simply leave it empty.
211
00:10:39,750 --> 00:10:43,853
‫And then in here we can then conditionally reassign it.
212
00:10:45,480 --> 00:10:46,820
‫Okay.
213
00:10:46,820 --> 00:10:49,053
‫And so now let's see how this works.
214
00:10:50,260 --> 00:10:53,600
‫And indeed now we get the century 20.
215
00:10:53,600 --> 00:10:57,270
‫So 1998 is below 2000
216
00:10:57,270 --> 00:11:01,080
‫and so this person was born in the 20th century.
217
00:11:01,080 --> 00:11:03,240
‫Now let's say 2012
218
00:11:03,240 --> 00:11:06,063
‫and so that should not be 21st century.
219
00:11:07,290 --> 00:11:10,973
‫And indeed that's exactly the result.
220
00:11:11,840 --> 00:11:15,270
‫So I hope that this example too made sense to you.
221
00:11:15,270 --> 00:11:17,050
‫Now, don't worry about the fact
222
00:11:17,050 --> 00:11:20,220
‫that we had to declare the century variable outside
223
00:11:20,220 --> 00:11:23,270
‫of the blocks, but matters here is that you understand
224
00:11:23,270 --> 00:11:26,640
‫the logic of the 'if', 'else' statement.
225
00:11:26,640 --> 00:11:27,473
‫Okay?
226
00:11:27,473 --> 00:11:29,890
‫And I hope that was clear enough
227
00:11:29,890 --> 00:11:32,610
‫but anyway, let's quickly recap.
228
00:11:32,610 --> 00:11:34,590
‫We can take decisions using code,
229
00:11:34,590 --> 00:11:36,370
‫using the, 'if', 'else' statement.
230
00:11:36,370 --> 00:11:40,720
‫And for that we write 'if', and then we open apprentices
231
00:11:40,720 --> 00:11:42,720
‫and in there we need a condition
232
00:11:42,720 --> 00:11:44,610
‫and the condition is essentially
233
00:11:44,610 --> 00:11:48,580
‫any code that returns a true or a false value.
234
00:11:48,580 --> 00:11:50,960
‫And so this is a perfect example of that
235
00:11:50,960 --> 00:11:55,540
‫because this operator here will return true or false right?
236
00:11:55,540 --> 00:11:59,220
‫And so we can use this operator to create a condition
237
00:11:59,220 --> 00:12:00,130
‫essentially.
238
00:12:00,130 --> 00:12:04,550
‫Then if the condition is true, this block will be executed.
239
00:12:04,550 --> 00:12:06,440
‫So all the code that is in there
240
00:12:06,440 --> 00:12:09,400
‫no matter how many lines of code there are.
241
00:12:09,400 --> 00:12:12,380
‫Now, if the condition turns out to be false
242
00:12:12,380 --> 00:12:16,070
‫then this 'else' block will be executed instead.
243
00:12:16,070 --> 00:12:19,480
‫So JavaScript will then skip this first block
244
00:12:19,480 --> 00:12:21,640
‫and go to the second block
245
00:12:21,640 --> 00:12:23,820
‫which is this one, but the 'else' block
246
00:12:23,820 --> 00:12:25,190
‫is actually optional.
247
00:12:25,190 --> 00:12:27,230
‫So if you don't have the 'else' block
248
00:12:27,230 --> 00:12:30,210
‫then simply no code will be executed.
249
00:12:30,210 --> 00:12:31,580
‫And this in a nutshell
250
00:12:31,580 --> 00:12:34,360
‫is how the, 'if', 'else' statement works
251
00:12:34,360 --> 00:12:37,580
‫and remember that this is really powerful.
252
00:12:37,580 --> 00:12:41,130
‫So make sure that you really understand how this works.
253
00:12:41,130 --> 00:12:43,870
‫And when you do understand, then you can move on
254
00:12:43,870 --> 00:12:46,760
‫to the next video where there is a small challenge
255
00:12:46,760 --> 00:12:47,763
‫waiting for you.
20164
Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.