You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python使用while循环、if语句与continue关键字输出1-5并跳过3的问题排查与修正

问题分析与解决方案

嘿,我来帮你拆解一下这个问题,其实核心是没搞懂continue关键字的执行逻辑,再加上变量自增的位置不对,才导致了循环卡死的情况。

为什么循环卡在i=3就停了?

当i等于3的时候,你的代码触发了if i ==3的条件,执行了continue。这个关键字的作用是直接跳过当前循环里剩下的所有代码,回到循环的条件判断(也就是while i <=5这一行)。

但你看,你的i +=1是写在print(i)之后的,当i=3时,continue直接跳过了print(i)和i +=1,所以i的值一直停留在3,循环条件i <=5永远成立,程序就陷入了死循环——既不会打印3,也不会继续往后执行4和5,自然只输出了1和2。

两种修正方案

方案一:调整i +=1的位置,先自增再判断

把变量自增放在循环的最开头,这样不管有没有触发continue,i都会先更新,避免卡死:

i = 0
while i < 5:
    i += 1  # 先让i自增,再做后续判断
    if i == 3:
        continue
    print(i)

这个逻辑里,i从0开始,每次循环先变成1、2、3...,当i=3时跳过打印,其余时候正常输出,就能得到1 2 4 5的结果。

方案二:在continue前先让i自增

如果不想改变整体结构,也可以在触发continue之前手动让i加1,这样就不会让i一直停留在3:

i = 1
while i <= 5:
    if i == 3:
        i += 1  # 先更新i的值,再跳过后续代码
        continue
    print(i)
    i += 1

当i=3时,先执行i +=1把i变成4,再执行continue跳过打印,下一次循环i就是4,就能正常执行打印和自增了。

内容的提问来源于stack exchange,提问作者CuadrosCody

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 18:08:15