0:00:00.012,0:00:04.356
You've just worked with Sarah to write and understand several loops, and what
0:00:04.356,0:00:08.327
will often happen to you that you have a loop that's really mysterious. And
0:00:08.327,0:00:12.381
I'll give you an example. Here's some code that comes from a program that you
0:00:12.381,0:00:16.352
will improve in a bit to solve a common problem, namely to identify reverse
0:00:16.352,0:00:20.514
digits in a credit card. So let's see what this code does. What you always want
0:00:20.514,0:00:24.577
to do is get out a sheet of paper. Here's my sheet of paper. You make a table.
0:00:24.577,0:00:29.540
One column for every variable. There's a variable n, there's a variable sum.
0:00:29.540,0:00:34.325
Now, it's always a good idea to take a marker, I like to use a paper clip, to
0:00:34.325,0:00:38.947
mark where we are. So, we set n to 365 and we set the sum to 0. Now we enter
0:00:38.947,0:00:43.661
the loop. Is n greater than 0? It sure is. We get to this statement. Now we
0:00:43.661,0:00:48.755
need to compute n modulo 10. That's the last digit of n. That would be 5. and
0:00:48.755,0:00:53.667
now we have a new variable! We record it, we put in the 5. Moving on, sum is
0:00:53.667,0:00:59.102
sum plus digit, n is n divided by 10, it's an integer division, so we discard
0:00:59.102,0:01:04.617
the remainder. We move to the top of the loop. Is n greater than zero? Compute
0:01:04.617,0:01:10.152
n MOD 10, 36 MOD 10 is 6, store that in the digit. Sum is sum plus digit. It is
0:01:10.152,0:01:14.837
11. N is n what 10, now n is 3. Back to the top of the loop. Is 3 greater than
0:01:14.837,0:01:18.812
zero? It barely is, so we stay in the loop. Now we need to take 3
0:01:18.812,0:01:19.607
[INAUDIBLE]
0:01:19.607,0:01:24.567
10. That's 3. Add it to the sum. Divide n by 10, that's an integer division, so
0:01:24.567,0:01:29.396
now we get 0. Zero is no longer greater than zero. We fall out of the loop, and
0:01:29.396,0:01:34.134
go to this statement. And what are we printing? You're priting 14. Okay, well
0:01:34.134,0:01:38.924
what's 14? Well, we've computed all of the digits of the number 365. 3, the 6,
0:01:38.924,0:01:43.730
the 5, and we've computed their sum. 14 is the sum of the digits. And that's
0:01:43.730,0:01:48.415
almost what one needs to do in order to verify a credit card. You'll see in
0:01:48.415,0:01:53.226
your next programming assignment what sum of digits you exactly need to do.