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

C++中如何跳过if语句执行且避免额外代码缩进?

在C++中实现需求的方案

可以实现,这里提供两种不增加额外缩进、符合要求的方案:

方案一:使用goto语句

虽然goto常被误解,但在这种需要跳过局部代码块的场景下,它是简洁且合规的用法,不会造成代码混乱:

if (foo()) {
    if (bar()) goto skip_buz;

    buz();
skip_buz:;
}
// 标记为[¹]的后续代码正常执行

当bar()返回真时,代码会跳转到skip_buz标签的位置,直接跳过buz()的执行,完全不影响外层if之后的逻辑。

方案二:用do-while(0)构建单次循环

把需要控制的代码块放进do-while(0)循环(这个循环只会执行一次),这样就能用continue或break跳过剩余代码:

if (foo()) {
    do {
        if (bar()) break; // 用continue效果完全相同
        buz();
    } while (0);
}
// 标记为[¹]的后续代码正常执行

do-while(0)保证代码块仅运行一次,当bar()为真时,break/continue会直接跳出这个单次循环,从而跳过buz(),同时不会影响后续代码的执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 00:41:58