Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated:
1
00:00:01,310 --> 00:00:03,780
When we learn about if-else statements,
2
00:00:03,780 --> 00:00:06,290
comparison and equality operators
3
00:00:06,290 --> 00:00:07,910
and Boolean values.
4
00:00:07,910 --> 00:00:10,630
We also need to learn about logic.
5
00:00:10,630 --> 00:00:13,710
And in particular about Boolean logic.
6
00:00:13,710 --> 00:00:16,133
So let's do that in this video.
7
00:00:17,580 --> 00:00:20,090
So basically Boolean logic
8
00:00:20,090 --> 00:00:22,220
is a branch of computer science,
9
00:00:22,220 --> 00:00:24,430
which uses true and false values
10
00:00:24,430 --> 00:00:27,340
to solve complex logical problems.
11
00:00:27,340 --> 00:00:28,820
And in order to do that,
12
00:00:28,820 --> 00:00:31,200
it uses several logical operators
13
00:00:31,200 --> 00:00:34,130
to combine true and false values.
14
00:00:34,130 --> 00:00:36,680
So much like we use arithmetic operators,
15
00:00:36,680 --> 00:00:38,990
to combine numeric values.
16
00:00:38,990 --> 00:00:41,530
Now we're only going to scratch the surface here
17
00:00:41,530 --> 00:00:44,840
and talk about the most basic logical operators,
18
00:00:44,840 --> 00:00:48,480
which are the AND, OR, and NOT operators.
19
00:00:48,480 --> 00:00:50,490
And note that Boolean logic
20
00:00:50,490 --> 00:00:53,670
is actually not specific to JavaScript.
21
00:00:53,670 --> 00:00:56,670
This is all true for all programming.
22
00:00:56,670 --> 00:00:57,503
But anyway,
23
00:00:57,503 --> 00:01:00,260
let's now understand how these operators work
24
00:01:00,260 --> 00:01:03,710
and use an example to illustrate it.
25
00:01:03,710 --> 00:01:06,460
So here we have two Boolean variables
26
00:01:06,460 --> 00:01:09,440
that can either be true or false.
27
00:01:09,440 --> 00:01:13,120
So A is that Sarah has a driver's license
28
00:01:13,120 --> 00:01:15,900
and B is that Sarah has good vision.
29
00:01:15,900 --> 00:01:18,520
So both of these are of course conditions,
30
00:01:18,520 --> 00:01:20,580
that can be true or false
31
00:01:20,580 --> 00:01:23,210
because Sarah could have no driver's license
32
00:01:23,210 --> 00:01:25,380
and she could have no good vision,
33
00:01:25,380 --> 00:01:26,340
right.
34
00:01:26,340 --> 00:01:28,070
And of course on the other hand,
35
00:01:28,070 --> 00:01:30,190
she could also have a driver's license
36
00:01:30,190 --> 00:01:32,620
and could have good vision.
37
00:01:32,620 --> 00:01:36,800
Now using the AND operator like A aND B,
38
00:01:36,800 --> 00:01:38,940
we can combine these two Boolean variables
39
00:01:38,940 --> 00:01:43,510
like Sarah has a driver's license and good vision.
40
00:01:43,510 --> 00:01:44,343
Okay.
41
00:01:44,343 --> 00:01:47,860
But now what will be the result of this operation?
42
00:01:47,860 --> 00:01:48,950
Well for that,
43
00:01:48,950 --> 00:01:51,370
we use a so-called truth table,
44
00:01:51,370 --> 00:01:53,880
which looks something like this.
45
00:01:53,880 --> 00:01:55,860
Here we have to two possible values
46
00:01:55,860 --> 00:01:57,230
for each of the variables,
47
00:01:57,230 --> 00:01:58,380
A AND B,
48
00:01:58,380 --> 00:02:02,580
which gives us four possible combinations of results.
49
00:02:02,580 --> 00:02:04,190
And so then all we have to do
50
00:02:04,190 --> 00:02:06,909
is to plug in the value of our variables,
51
00:02:06,909 --> 00:02:09,790
and to get a result of the AND operation
52
00:02:09,790 --> 00:02:11,290
from this table.
53
00:02:11,290 --> 00:02:13,740
So what we can see from this table
54
00:02:13,740 --> 00:02:17,150
is that only if both A and B are true,
55
00:02:17,150 --> 00:02:20,940
the result of the operation will be true as well.
56
00:02:20,940 --> 00:02:23,060
And that makes sense, right!
57
00:02:23,060 --> 00:02:23,950
After all,
58
00:02:23,950 --> 00:02:26,260
it's called the AND operator.
59
00:02:26,260 --> 00:02:27,310
And so again,
60
00:02:27,310 --> 00:02:29,190
what the AND operator does
61
00:02:29,190 --> 00:02:30,850
is to return true
62
00:02:30,850 --> 00:02:34,320
only if both A AND B are true.
63
00:02:34,320 --> 00:02:35,910
In all other situations,
64
00:02:35,910 --> 00:02:38,730
if either A or B are false,
65
00:02:38,730 --> 00:02:41,750
then A AND B will also be false.
66
00:02:41,750 --> 00:02:44,680
And we can also generalize this to more operands.
67
00:02:44,680 --> 00:02:47,150
So to more than just two values,
68
00:02:47,150 --> 00:02:49,870
we could do A AND B AND C,
69
00:02:49,870 --> 00:02:51,430
and results would be true
70
00:02:51,430 --> 00:02:54,320
only if all of them are true.
71
00:02:54,320 --> 00:02:55,920
And if one of them is false,
72
00:02:55,920 --> 00:02:59,870
then the result is immediately false as well.
73
00:02:59,870 --> 00:03:01,680
Now I know that all of this,
74
00:03:01,680 --> 00:03:04,360
might look a little bit confusing,
75
00:03:04,360 --> 00:03:06,700
but don't worry We will have an example,
76
00:03:06,700 --> 00:03:08,710
a little bit later in this lecture,
77
00:03:08,710 --> 00:03:10,830
and we will also use this in practice
78
00:03:10,830 --> 00:03:12,140
and the next one.
79
00:03:12,140 --> 00:03:13,210
And after some practice,
80
00:03:13,210 --> 00:03:15,340
you will internalize all of this
81
00:03:15,340 --> 00:03:18,239
and you won't even need any truth tables.
82
00:03:18,239 --> 00:03:19,710
Now moving on,
83
00:03:19,710 --> 00:03:20,599
on the other hand,
84
00:03:20,599 --> 00:03:23,670
we also have the OR operator,
85
00:03:23,670 --> 00:03:26,380
which kind of works in the opposite way.
86
00:03:26,380 --> 00:03:28,210
So with our current example,
87
00:03:28,210 --> 00:03:29,970
we could use the OR operator
88
00:03:29,970 --> 00:03:31,820
to determine whether Sarah
89
00:03:31,820 --> 00:03:35,000
has a driver's license or good vision.
90
00:03:35,000 --> 00:03:37,120
And just by thinking about this,
91
00:03:37,120 --> 00:03:39,620
we can already intuitively imagine
92
00:03:39,620 --> 00:03:41,960
that the OR operator will be true
93
00:03:41,960 --> 00:03:44,710
if just one of the variables is true.
94
00:03:44,710 --> 00:03:45,640
And in fact,
95
00:03:45,640 --> 00:03:50,170
a look at the truth table confirms exactly that.
96
00:03:50,170 --> 00:03:53,850
So unlike the AND operator and the OR operator,
97
00:03:53,850 --> 00:03:56,400
even if one of the variables is false,
98
00:03:56,400 --> 00:03:59,130
the outcome will still be true.
99
00:03:59,130 --> 00:04:00,380
Or in other words,
100
00:04:00,380 --> 00:04:02,830
if either A OR B is true,
101
00:04:02,830 --> 00:04:05,780
then the OR operation becomes true as well.
102
00:04:05,780 --> 00:04:08,900
And that's why it's called the OR operator.
103
00:04:08,900 --> 00:04:10,230
And once more,
104
00:04:10,230 --> 00:04:12,260
if we have multiple variables,
105
00:04:12,260 --> 00:04:15,010
it's enough for one of them to be true,
106
00:04:15,010 --> 00:04:18,360
to make the whole operation become true as well.
107
00:04:18,360 --> 00:04:20,660
Okay, I hope this makes sense.
108
00:04:20,660 --> 00:04:21,810
And once again,
109
00:04:21,810 --> 00:04:22,980
I can assure you
110
00:04:22,980 --> 00:04:24,480
that it will make sense
111
00:04:24,480 --> 00:04:27,840
once we start using this in practice.
112
00:04:27,840 --> 00:04:28,673
Anyway,
113
00:04:28,673 --> 00:04:31,830
we finally also have the NOT operator,
114
00:04:31,830 --> 00:04:33,360
which is a lot simpler
115
00:04:33,360 --> 00:04:36,060
because it doesn't combine multiple values.
116
00:04:36,060 --> 00:04:36,990
Instead,
117
00:04:36,990 --> 00:04:40,920
the NOT operator acts on only one Boolean value
118
00:04:40,920 --> 00:04:43,420
and it basically just inverts it.
119
00:04:43,420 --> 00:04:44,910
So if A is true,
120
00:04:44,910 --> 00:04:46,270
it will become false.
121
00:04:46,270 --> 00:04:47,400
And if it's false,
122
00:04:47,400 --> 00:04:49,720
then NOT A will become true,
123
00:04:49,720 --> 00:04:51,400
simple as that.
124
00:04:51,400 --> 00:04:52,320
And that's basically
125
00:04:52,320 --> 00:04:56,200
how these three most important logical operators work.
126
00:04:56,200 --> 00:04:57,033
But of course,
127
00:04:57,033 --> 00:04:58,670
the best way to understand it
128
00:04:58,670 --> 00:05:01,640
is to use a more practical example.
129
00:05:01,640 --> 00:05:03,280
So let's go again back
130
00:05:03,280 --> 00:05:04,372
to using the age,
131
00:05:04,372 --> 00:05:07,600
and this time we set it to 16.
132
00:05:07,600 --> 00:05:08,737
And then we have,
133
00:05:08,737 --> 00:05:10,800
our two Boolean variables.
134
00:05:10,800 --> 00:05:14,630
The first one is age is greater or equal 20.
135
00:05:14,630 --> 00:05:18,660
And the second one is age is less than 30.
136
00:05:18,660 --> 00:05:21,580
So let's determine the value of each of them.
137
00:05:21,580 --> 00:05:23,072
So if age is 16,
138
00:05:23,072 --> 00:05:26,021
then age is greater or equal to any
139
00:05:26,021 --> 00:05:27,611
must be false.
140
00:05:27,611 --> 00:05:28,462
Right!
141
00:05:28,462 --> 00:05:29,950
And of course it is,
142
00:05:29,950 --> 00:05:32,533
and age is less than 30 is true
143
00:05:33,735 --> 00:05:37,642
because 16 obviously is less than 30.
144
00:05:37,642 --> 00:05:38,664
Okay.
145
00:05:38,664 --> 00:05:40,390
So that's the baseline basically,
146
00:05:40,390 --> 00:05:42,330
and now we will start to combine
147
00:05:42,330 --> 00:05:44,110
these variables A and B
148
00:05:44,110 --> 00:05:46,760
using some logical operators.
149
00:05:46,760 --> 00:05:48,630
So the first exercise
150
00:05:48,630 --> 00:05:50,350
is the NOT operator.
151
00:05:50,350 --> 00:05:51,510
So NOT A,
152
00:05:51,510 --> 00:05:56,070
and we know right now that A is false, right?
153
00:05:56,070 --> 00:05:57,970
So the result of NOT A,
154
00:05:57,970 --> 00:06:00,610
as we just learned is true,
155
00:06:00,610 --> 00:06:01,650
because all it does
156
00:06:01,650 --> 00:06:05,570
is to invert the logical value of the variable.
157
00:06:05,570 --> 00:06:08,190
Next one we have A AND B,
158
00:06:08,190 --> 00:06:12,060
now we already know that A is false and B is true.
159
00:06:12,060 --> 00:06:14,010
So I'm just putting these values here again,
160
00:06:14,010 --> 00:06:16,100
to make it a bit easier to follow.
161
00:06:16,100 --> 00:06:17,010
Okay.
162
00:06:17,010 --> 00:06:20,200
So we have basically false and true.
163
00:06:20,200 --> 00:06:22,650
So from a look at our truth table here
164
00:06:22,650 --> 00:06:23,830
at the right side,
165
00:06:23,830 --> 00:06:25,130
we can easily determine
166
00:06:25,130 --> 00:06:28,600
that the result of this must be false.
167
00:06:28,600 --> 00:06:29,550
And so that's exactly
168
00:06:29,550 --> 00:06:31,020
what we learned before.
169
00:06:31,020 --> 00:06:32,890
So when we have the AND operator,
170
00:06:32,890 --> 00:06:36,000
it's enough for one of the operands to be false,
171
00:06:36,000 --> 00:06:39,392
to make the result of the operation also false.
172
00:06:39,392 --> 00:06:42,050
Now we have A OR B,
173
00:06:42,050 --> 00:06:46,010
and so let's check out the truth table in this case.
174
00:06:46,010 --> 00:06:47,740
And so in this case,
175
00:06:47,740 --> 00:06:49,920
we actually get true.
176
00:06:49,920 --> 00:06:52,380
And so this shows that it is enough
177
00:06:52,380 --> 00:06:54,600
for one variable to be true
178
00:06:54,600 --> 00:06:57,023
for the whole expression to be true as well.
179
00:06:58,620 --> 00:07:02,210
Next up let's check NOT A AND B.
180
00:07:02,210 --> 00:07:03,430
And we already know
181
00:07:03,430 --> 00:07:07,300
that NOT A is true and B is true.
182
00:07:07,300 --> 00:07:09,170
And so at this time for the first time,
183
00:07:09,170 --> 00:07:12,260
we are combining multiple operators here
184
00:07:12,260 --> 00:07:16,030
and yeah we already know that true and true
185
00:07:16,030 --> 00:07:18,900
will of course be true as well.
186
00:07:18,900 --> 00:07:22,560
And now another one combining two operators,
187
00:07:22,560 --> 00:07:25,640
so A OR NOT B.
188
00:07:25,640 --> 00:07:27,200
And just as a side note,
189
00:07:27,200 --> 00:07:30,570
the NOT operator actually has proceedings
190
00:07:30,570 --> 00:07:33,400
over the OR and AND operators.
191
00:07:33,400 --> 00:07:36,510
So basically the values are inverted first
192
00:07:36,510 --> 00:07:40,920
and only then they are combined using AND or OR.
193
00:07:40,920 --> 00:07:45,920
So we know that A is false and B is true.
194
00:07:46,190 --> 00:07:49,360
So NOT B must be false, right
195
00:07:49,360 --> 00:07:53,880
then false OR false is also false.
196
00:07:53,880 --> 00:07:56,170
And actually that's the only way in which
197
00:07:56,170 --> 00:07:58,270
the OR operator can be false.
198
00:07:58,270 --> 00:08:00,343
If all of them are false basically.
199
00:08:01,450 --> 00:08:03,990
So I hope that made sense to you.
200
00:08:03,990 --> 00:08:05,720
And so in the next lecture,
201
00:08:05,720 --> 00:08:09,700
we will actually use these operators in a code.
202
00:08:09,700 --> 00:08:13,290
And then it will make even more sense to you.
203
00:08:13,290 --> 00:08:14,420
So by then,
204
00:08:14,420 --> 00:08:18,310
we probably won't even need the truth tables anymore,
205
00:08:18,310 --> 00:08:20,550
because it will become quite intuitive
206
00:08:20,550 --> 00:08:23,930
how both of these operators actually work.
207
00:08:23,930 --> 00:08:25,870
But anyway, let's now move on
208
00:08:25,870 --> 00:08:27,873
and I see you in the next video.
13817
Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.