I wanted to make the two cases explicit and differentiate them visually; it's clear now that negative numbers are not handled.  I don't think the code optimization is worth sacrificing that clarify.