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例),

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值