One solution is to make both bounds explicit, like set-builder notation would.<p><pre><code>  for (size_t i = numBurritos - 1; 0 &lt;= i &amp;&amp; i &lt; numBurritos; i--)
</code></pre>
But this loops infinitely if sizeof(numBurritos) == sizeof(size_t) where size_t is unsigned, because the entire space of possible values returns True. This failure mode exists whether we increment <i>or</i> decrement over unsigned values.<p>The root problem here isn&#x27;t decrementing. The root problem is the unsigned value. So maybe it&#x27;s best practice to use signed values whenever possible. This way, the existence of negative values guarantees the existence of a sentinel.