This appeases the compiler...
for (things = CAT; things <= Monkey; things = (animal)(things + 1) )
Otherwise you have to override the ++ operator for the animal data-type.
would it automatically jump back down to CAT
No.
or would it become undefined with a int value of 5+ ?
Yes,