Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated:
1
00:00:00,390 --> 00:00:01,920
Welcome to exercise number two.
2
00:00:03,840 --> 00:00:10,200
So this person is 24, but they carry a lot of debt, and so naturally their application should be rejected,
3
00:00:10,210 --> 00:00:15,890
but our conditionals are not working as they should, and for some reason their application gets processed.
4
00:00:16,620 --> 00:00:19,200
So let's add some break points and figure out what's going on.
5
00:00:28,390 --> 00:00:34,270
OK, now we're going to launch the debugger for the conditionals class and let's step through each line
6
00:00:34,270 --> 00:00:37,150
and hopefully we can find some mistakes, OK?
7
00:00:37,180 --> 00:00:38,220
There's the first mistake.
8
00:00:38,230 --> 00:00:42,850
So apparently their credit score here is good, but we know it shouldn't be because they're adept as
9
00:00:42,850 --> 00:00:44,260
four thousand dollars.
10
00:00:45,190 --> 00:00:48,340
So we can stop right here and investigate.
11
00:00:49,250 --> 00:00:54,560
So if this condition is true, if debt is bigger than zero, then return good, otherwise bad.
12
00:00:55,460 --> 00:00:56,510
It should be the opposite.
13
00:00:56,880 --> 00:01:00,860
If their debt is higher than zero, then it should return bad, otherwise good.
14
00:01:06,030 --> 00:01:07,500
By the way, this.
15
00:01:09,780 --> 00:01:16,380
Is the same thing is writing this, but the conditional assignment syntax is a lot cleaner, but honestly,
16
00:01:16,380 --> 00:01:17,560
you don't have to use it.
17
00:01:17,580 --> 00:01:23,130
It's totally up to you if you want to use a standard NFLs to assign a value between a binary number
18
00:01:23,130 --> 00:01:23,910
of choices.
19
00:01:23,910 --> 00:01:27,660
Power to you if you want to use conditional assignment syntax.
20
00:01:27,660 --> 00:01:32,760
The ternary operators, which can be thought of as a simplified version of the default statement, then
21
00:01:32,760 --> 00:01:34,320
by all means you can do that as well.
22
00:01:34,530 --> 00:01:39,210
I personally prefer using the ternary operator is when it's appropriate because it's a lot cleaner and
23
00:01:39,210 --> 00:01:39,990
it's less code.
24
00:01:40,650 --> 00:01:43,230
In any case, you can find the syntax in your cheat sheet.
25
00:01:44,040 --> 00:01:45,300
All right, let's run the code.
26
00:01:55,630 --> 00:01:58,720
All right, so relaunched the debugger, maybe there's something we missed.
27
00:02:07,580 --> 00:02:08,900
Oh, this is false.
28
00:02:09,320 --> 00:02:13,790
It seems like we mixed up our condition because clearly a 24 year old should be old enough.
29
00:02:14,540 --> 00:02:17,150
And now do you see how useful the debugging tool is?
30
00:02:17,420 --> 00:02:21,560
Because from first glance, you're not going to notice the wrongful comparison operator.
31
00:02:21,770 --> 00:02:26,630
But when you can see that the output is clearly wrong, then it's going to prompt you to investigate
32
00:02:26,630 --> 00:02:27,140
the matter.
33
00:02:27,380 --> 00:02:29,720
And in this case, we fixed the comparison.
34
00:02:31,600 --> 00:02:33,280
Hopefully now everything should be good.
35
00:02:43,280 --> 00:02:49,160
So apparently this works, but to run some test cases to make sure let's do an age of 16 with adeptness
36
00:02:49,160 --> 00:02:49,940
4000.
37
00:02:52,880 --> 00:02:54,620
Definitely shouldn't get processed.
38
00:02:59,920 --> 00:03:00,490
OK, good.
39
00:03:01,080 --> 00:03:03,670
Let's do 24 years old with a zero adepts.
40
00:03:06,920 --> 00:03:08,990
So this application should get processed.
41
00:03:12,260 --> 00:03:17,930
But it doesn't there's something wrong with our code, and I hope you can see how important it is to
42
00:03:17,930 --> 00:03:23,210
run test cases, test cases are the ultimate way to really battle test your application to make sure
43
00:03:23,210 --> 00:03:25,010
that everything works the way that it should.
44
00:03:25,730 --> 00:03:26,200
All right.
45
00:03:26,210 --> 00:03:29,090
In any case, let's launch the debugger and see what's wrong.
46
00:03:36,020 --> 00:03:40,790
At this line of code can apply is true and credit score is good, but check it out.
47
00:03:41,030 --> 00:03:47,120
The if statement was programmed to process applications if they're not eligible, which doesn't make
48
00:03:47,120 --> 00:03:51,530
any sense, we should only process applications where the person is eligible.
49
00:03:53,460 --> 00:03:55,650
And if they have a good credit.
50
00:03:56,970 --> 00:04:01,230
And I think now we're ready to run the code because we've effectively debug the application.
51
00:04:13,650 --> 00:04:14,750
Let's run it one more time.
52
00:04:21,589 --> 00:04:24,470
Credit score equals good because debt is no higher than zero.
53
00:04:26,640 --> 00:04:29,040
The person is over 18 so they can apply.
54
00:04:31,460 --> 00:04:35,810
The statement should run because the person is over 18 and has good credit score.
55
00:04:37,110 --> 00:04:39,030
And so we know this line is going to run.
56
00:04:39,780 --> 00:04:45,450
It's pretty amazing that we can actually visualize how the code runs and how the state of our application
57
00:04:45,450 --> 00:04:46,860
changes line by line.
58
00:04:49,080 --> 00:04:53,010
And so for the sake of practice, let's not forget to try the other test cases.
59
00:05:08,450 --> 00:05:11,330
Credit score equals bad because that is higher than zero.
60
00:05:12,710 --> 00:05:18,170
The person is under 18, so they cannot apply, the statement should run if the person is over 18 and
61
00:05:18,170 --> 00:05:20,300
has good credit score, but that is not the case.
62
00:05:24,460 --> 00:05:25,990
So the statement runs.
63
00:05:30,710 --> 00:05:32,360
All right, last test case.
64
00:05:39,190 --> 00:05:44,620
This time, the credit score is good because that isn't bigger than zero, the person is under 18,
65
00:05:44,620 --> 00:05:50,470
however, so they cannot apply the system and should run if the person is over 18 and they have a good
66
00:05:50,470 --> 00:05:51,090
credit score.
67
00:05:51,220 --> 00:05:53,830
But that is not the case, as you can clearly see.
68
00:05:54,070 --> 00:05:56,170
So we know the statement runs.
69
00:05:59,780 --> 00:06:00,750
OK, there you go.
70
00:06:00,770 --> 00:06:02,630
I hope you enjoy this exercise.
6697
Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.