擅长:python、mysql、java
<p>第一:习惯于测试你的代码。因为有涉及数字1和4的条件,所以应该测试小于1和大于4的数字,以查看超出这些边的情况。果然,输入5会产生一个无限循环:</p>
<pre><code>0
Done.
1
1 : Lather and rinse.
Done.
4
1 : Lather and rinse.
2 : Lather and rinse.
3 : Lather and rinse.
4 : Lather and rinse.
Done.
5
1 : Lather and rinse.
2 : Lather and rinse.
3 : Lather and rinse.
4 : Lather and rinse.
Too many
Too many
Too many
Too many
Too many
Too many
</code></pre>
<p>为什么会这样<code>user_cycles == 5</code>因此循环直到<code>N == 6</code>(或任何大于5的值)才会停止</p>
<p>当<code>N == 5</code>时会发生什么情况?我们打印“太多”,然后继续循环<em>,而不再次增加N</em>。因此循环将始终停留在N=5</p>
<p>请注意,使用这些值进行测试还表明,我们从未达到<code>Too few</code>条件这是死代码!不可能达到此条件,因为<code>N</code>始终从1开始,并且从不减少</p>
<p>修复无限循环的方法取决于所需的行为。只要N超过4,您就可以<code>break</code>该循环:</p>
<pre><code> elif N > 4:
print('Too many')
break
</code></pre>
<p>另一个选项是确保N始终递增,方法是在该条件块内递增N,或者在整个<code>if...elif...else</code>语句外递增N,而不是在<code>else</code>内递增N(该语句只对1到4之间的值运行)</p>