44常用d编程标签和至

标签语法标签:.
这个标签给本行的行尾加个名字.
还可以anExpression(); end: anotherExpression();,但不常用.

void foo(bool condition) {
    writeln("first");
    if (condition) {
        goto end;
    }
    writeln("second");
end:
    writeln("third");
}

goto代理以难以理解著称.
上面代码可重写为:

void foo(bool condition) {
    writeln("first");

    if (!condition) {
        writeln("second");
    }

    writeln("third");
}

在c中,还有几种用途:

// --- C 代码 ---

int foo() {
    // ...

    if (error) {
        goto finally;
    }

    // ...

finally:
    // ... 清理,交资源,撤销等 ...
    return error;
}

在d中都不必要.垃集,析构器,catch,finally,scope语句,c++中也不必要.
在c中还有外部循环的问题.

// --- C 代码 ---

    while (condition) {
        while (otherCondition) {
            continue;//内圈
            break;//内圈
            goto continueOuter;// 外圈'continue' 
            goto breakOuter;// 外圈'break' 
        }

    continueOuter:
        ;
    }
breakOuter:

同样的技术可用于外部switch.goto在d中这种用法也是不必要的,因为d循环标签.c++还需要这种方法.

    if (condition) {
        goto aLabel;    // 跳过构造
    }
    auto s = S(42);     // 构造
aLabel:
    s.bar();            // BUG: 没定义's'

跳过构造.
编译器阻止:

Error: goto skips declaration of variable deneme.main.s

循环标签:

outerLoop:
    while (condition) {
        while (otherCondition) {
            continue;
            break;
            continue outerLoop;//在外部标签继续
            break outerLoop;//在外部标签处断开
        }
    }

即从外部标签处继续断开.
switch语句也可含标签.一个内部break可从外部switch点中断.
还有goto case,跳至下例,goto default与goto case expression(跳至XX例),
标签语法标签:.
这个标签给本行的行尾加个名字.
还可以anExpression(); end: anotherExpression();,但不常用.

void foo(bool condition) {
    writeln("first");
    if (condition) {
        goto end;
    }
    writeln("second");
end:
    writeln("third");
}

goto代理以难以理解著称.
上面代码可重写为:

void foo(bool condition) {
    writeln("first");

    if (!condition) {
        writeln("second");
    }

    writeln("third");
}

在c中,还有几种用途:

// --- C 代码 ---

int foo() {
    // ...

    if (error) {
        goto finally;
    }

    // ...

finally:
    // ... 清理,交资源,撤销等 ...
    return error;
}

在d中都不必要.垃集,析构器,catch,finally,scope语句,c++中也不必要.
在c中还有外部循环的问题.

// --- C 代码 ---

    while (condition) {
        while (otherCondition) {
            continue;//内圈
            break;//内圈
            goto continueOuter;// 外圈'continue' 
            goto breakOuter;// 外圈'break' 
        }

    continueOuter:
        ;
    }
breakOuter:

同样的技术可用于外部switch.goto在d中这种用法也是不必要的,因为d循环标签.c++还需要这种方法.

    if (condition) {
        goto aLabel;    // 跳过构造
    }
    auto s = S(42);     // 构造
aLabel:
    s.bar();            // BUG: 没定义's'

跳过构造.
编译器阻止:

Error: goto skips declaration of variable deneme.main.s

循环标签:

outerLoop:
    while (condition) {
        while (otherCondition) {
            continue;
            break;
            continue outerLoop;//在外部标签继续
            break outerLoop;//在外部标签处断开
        }
    }

即从外部标签处继续断开.
switch语句也可含标签.一个内部break可从外部switch点中断.
还有goto case,跳至下例,goto default与goto case expression(跳至XX例),

posted @   zjh6  阅读(11)  评论(0编辑  收藏  举报  
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示