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

C语言中continue语句的正确放置位置?代码执行异常求助

问题排查与修复:continue语句导致的死循环

问题根源

当程序运行到a=2且b=2时,continue语句直接跳转到内层while循环的开头,跳过了b++语句。此时b的值始终停留在2,内层while的条件b<=3永远成立,程序陷入死循环,无法继续输出后续内容。

修复方案

核心是确保无论是否触发continue,b都能正常递增,打破死循环。这里提供两种可行的修复方式:

方式1:调整b++的执行顺序

把b++移到判断逻辑之前,保证每次循环都先更新b的值:

#include <stdio.h>
int main(){
    int a=1,b=1;
    
    while(a<=3)
    {
        b=1;
        while(b<=3)
        {   
            b++;
            if(a==2&&b==2)
                continue;
            printf("%d%d ",a,b-1);
        }
    a++;
    }
 return 0;
}

方式2:在continue前手动递增b

在触发continue的分支里先执行b++,避免b值卡住:

#include <stdio.h>
int main(){
    int a=1,b=1;
    
    while(a<=3)
    {
        b=1;
        while(b<=3)
        {   
            if(a==2&&b==2)
            {
                b++;
                continue;
            }
            printf("%d%d ",a,b);
            b++;
        }
    a++;
    }
 return 0;
}

验证结果

修复后的代码会输出预期内容:11 12 13 21 23 31 32 33

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 18:16:05