Hi,
I am taking the iTunes U cs50 class and ran into code that i do not quite understand:
Code:
#include <cs50.h>
#include <stdio.h>
// function prototype
void chorus(int b);
int
main(void)
{
// ask user for number
printf("How many bottles will there be? ");
int n = GetInt();
// exit upon invalid input
if (n < 1)
{
printf("Sorry, that makes no sense.\n");
return 1;
}
// sing the annoying song
printf("\n");
while (n)
chorus(n--);
// exit when song is over
printf("Wow, that's annoying.\n");
return 0;
}
void
chorus(int b)
{
// use proper grammar
string s1 = (b == 1) ? "bottle" : "bottles";
string s2 = (b == 2) ? "bottle" : "bottles";
// sing verses
printf("%d %s of beer on the wall,\n", b, s1);
printf("%d %s of beer,\n", b, s1);
printf("Take one down, pass it around,\n");
printf("%d %s of beer on the wall.\n\n", b - 1, s2);
}
My question is, how does the code know to stop looping when n hits 0? The code says while (n) not while (n>0).
Thanks in advance!