Multiplication using repetitive addition (please help)

Why this code is working ? I meant that if “b” is negative then “c” will never achieve the value of “b” in “if statement” and answer should not come right but still irrespective what “b” is (positive or negative) ,the multiplication always comes right . Why ?

/* CODE */
#include <stdio.h>
int main()
{
int a,b,c=1,d=0;
scanf("%d %d",&a,&b);
for( ; ; ){
d=d+a;
if(c==b)
break;
c++;
}
printf("%d",d);
return 0;
}