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