擅长:python、mysql、java
<p>(这是从@Mark Tolonen的回答中得到的启发。)</p>
<p>如果条件计算为false,则<code>if</code>语句运行其<code>else</code>子句。
同样,如果else子句的条件计算结果为false,则<code>while</code>循环运行else子句。</p>
<p>此规则与您描述的行为匹配:</p>
<ul>
<li>在正常执行中,while循环重复运行,直到条件计算为false,因此自然退出循环将运行else子句。</li>
<li>当您执行<code>break</code>语句时,您退出循环而不计算条件,因此条件不能计算为false,并且您永远不会运行else子句。</li>
<li>当您执行<code>continue</code>语句时,您将再次计算该条件,并在循环迭代开始时执行您通常会执行的操作。
因此,如果条件为true,则继续循环,但如果条件为false,则运行else子句。</li>
<li>退出循环的其他方法,如<code>return</code>,不计算条件,因此不运行else子句。</li>
</ul>
<p><code>for</code>循环的行为方式相同。如果迭代器有更多的元素,则将条件视为true,否则视为false。</p>