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.