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例)
,
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现