Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated:
1
00:00:00,420 --> 00:00:02,480
Normally, the loops are very easy to control.
2
00:00:02,550 --> 00:00:08,460
You simply need to trace the counter eye during each run, but nested loops rely on two counters I.
3
00:00:09,420 --> 00:00:12,180
And so it can be hard to follow two counters at the same time.
4
00:00:12,190 --> 00:00:15,300
So it helps to visualize the runtime using breakpoints.
5
00:00:17,860 --> 00:00:20,710
In this lesson, you're going to learn to debug loops using breakpoints.
6
00:00:23,130 --> 00:00:26,670
All right, first thing to do is apply breakpoints to the nested loop.
7
00:00:29,540 --> 00:00:34,130
And so during the runtime, we're going to visualize and keep track of the counters I enjoy as the updates
8
00:00:34,610 --> 00:00:36,230
to launch a new debugging session.
9
00:00:40,400 --> 00:00:46,520
And as expected, everyone from the outer loop runs the inner loop 10 times, we can see that by looking
10
00:00:46,520 --> 00:00:52,070
at the counters and this is going to keep happening till the outer loop breaks so we can go ahead and
11
00:00:52,070 --> 00:00:53,180
stop the debugger.
12
00:00:54,480 --> 00:00:59,490
All right, now, you were given the task of printing a half pyramid using Java, the pyramid just 10
13
00:00:59,490 --> 00:01:04,650
rows, the first row starts with one star and the number of stars keeps increasing by one.
14
00:01:08,830 --> 00:01:10,270
But if you run the current code.
15
00:01:19,320 --> 00:01:24,840
This should be our output once again, the code you open doesn't behave like we want it to.
16
00:01:24,930 --> 00:01:29,310
Something is wrong and using breakpoints, we can visualize the runtime and fix it step by step.
17
00:01:30,000 --> 00:01:33,960
So I'm going to add one more breakpoint right here, then launch a new debugging session.
18
00:01:40,670 --> 00:01:44,270
It seems that each pass from the outer loop runs the inner loop 10 times.
19
00:01:47,950 --> 00:01:51,550
Every pass that follows princi row of 10 stars on the same line.
20
00:01:52,430 --> 00:01:57,280
If you look back at the output, the most obvious step is to add a new line after every arrow.
21
00:02:01,450 --> 00:02:05,500
So we can add a new line after the inner loop runs to completion right over here.
22
00:02:11,390 --> 00:02:12,560
Stop the debugger.
23
00:02:14,110 --> 00:02:14,980
We run the code.
24
00:02:22,800 --> 00:02:26,160
And this pyramid should have 10 rows, so this is progress.
25
00:02:27,810 --> 00:02:32,010
But how do we make sure that each row has as many stars as the order that it appears in?
26
00:02:34,230 --> 00:02:37,620
It might help to launch another debugging session and visualize the runtime.
27
00:02:46,280 --> 00:02:51,470
And I hope you can see the problem each passed from the outer loop, runs the inner loop 10 times.
28
00:02:52,460 --> 00:02:57,770
Instead, the first pass should run the inner loop once, the second pass should run the inner loop
29
00:02:57,770 --> 00:02:58,370
twice.
30
00:02:58,670 --> 00:03:04,360
And so the amount of times the inner loop runs should depend on the index of the outer loop.
31
00:03:04,970 --> 00:03:08,960
So the inner loop should keep running as long as J is smaller than I.
32
00:03:23,390 --> 00:03:24,920
OK, this is great progress.
33
00:03:26,510 --> 00:03:31,020
But why are there only one, two, three, four, nine lines?
34
00:03:31,490 --> 00:03:33,680
Wow, another bug that we have to fix.
35
00:03:34,870 --> 00:03:37,060
So we can launch another debugging session.
36
00:03:39,300 --> 00:03:45,240
And by visualizing the runtime, the issue becomes clear, the first pass from the outer loop doesn't
37
00:03:45,240 --> 00:03:48,960
do anything, so only nine lines from the pyramid shows up.
38
00:03:49,500 --> 00:03:52,650
That's because one eye is zero and zero.
39
00:03:52,960 --> 00:03:54,320
This condition is false.
40
00:03:54,360 --> 00:03:57,990
So we need to make sure that Jay is less than or equal to I.
41
00:04:17,130 --> 00:04:22,860
And perfect and displays ten rows each row has as many stars as the order that it appears in.
42
00:04:28,580 --> 00:04:30,500
The first loop runs only once.
43
00:04:35,300 --> 00:04:37,400
The second inner loop runs twice.
44
00:04:39,240 --> 00:04:41,160
A third inner loop runs three times.
45
00:04:44,990 --> 00:04:50,480
And pretty much the number of times the inner loop runs depends on the index of the outer loop.
46
00:04:58,530 --> 00:05:03,120
And honestly, it's really satisfying seeing the code, working with your own eyes.
4778
Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.