
You've just worked with Sarah to write and understand several loops, and what

will often happen to you that you have a loop that's really mysterious. And

I'll give you an example. Here's some code that comes from a program that you

will improve in a bit to solve a common problem, namely to identify reverse

digits in a credit card. So let's see what this code does. What you always want

to do is get out a sheet of paper. Here's my sheet of paper. You make a table.

One column for every variable. There's a variable n, there's a variable sum.

Now, it's always a good idea to take a marker, I like to use a paper clip to

mark where we are. So, we set n to 365 and we set the sum to 0. Now, we enter

the loop. Is n greater than 0? It sure is. We get to this statement. Now, we

need to compute n modulo 10. That's the last digit of n. That would be 5. and

now we have a new variable! We record it, we put in the 5. Moving on, sum is

sum plus digit, n is n divided by 10, it's an integer division so we discard

the remainder. We move to the top of the loop. Is n greater than 0? Compute n

MOD 10, 36 MOD 10 is 6, store that in the digit. Sum is sum plus digit. It is

11. n is n, what, 10. Now, n is 3. Back to the top of the loop. Is 3 greater

than 0? It barely is, so we stay in the loop. Now, we need to take 3 MOD 10.

That's 3. Add it to the sum. Divide n by 10, that's an integer division, so now

we get 0. 0 is no longer greater than 0. We fall out of the loop, and go to

this statement. And what are we printing? You're printing 14. Okay, well,

what's 14? Well, we've computed all of the digits of the number 365, 3, the 6,

the 5, and we've computed their sum. 14 is the sum of the digits. And that's

almost what one needs to do in order to verify a credit card. You'll see in

your next programming assignment what sum of digits you exactly need to do.