GOTO
- 来源: https://www.freebasic.net/wiki/wikka.php?wakka=KeyPgGoto
- 最后更新: 2016-05-07
用于跳转到程序另一部分的控制流语句。
语法
Goto label描述
将代码执行跳转到行标签处。
当使用 Goto label 退出某个作用域时,在该作用域中定义的所有局部变量将被销毁(调用析构函数)。
当 Goto label 跳过了变量定义但未跳出该变量的作用域末尾时,可能不允许使用 Goto label。如果该变量需要构造,则会显示编译器错误。对于其他变量,则会显示编译器警告。这是为了防止对未初始化变量的潜在访问,并确保未初始化变量不会发生自动析构。
为了提高源代码的可读性,应避免过度使用 Goto,转而使用更现代的结构,如 Do...Loop、For...Next、Sub 和 Function。
示例
start GeSHi
vb
Goto there
backagain:
End
there:
Print "Welcome!"
Goto backagainend GeSHi
start GeSHi
vb
'' Compile with -lang qb or fblite
'$lang: "qb"
1 Goto 3
2 End
3 Print "Welcome!"
4 Goto 2end GeSHi
方言差异
- 行号仅在 -lang qb 和 -lang deprecated 方言中允许使用。
- 在 -lang qb 和 -lang fblite 方言中,
Goto label允许跳过任何变量定义,因为不支持嵌套作用域,所有变量定义都被移到其所在过程的顶部。
与 QB 的差异
- 无
参见
GosubSubFunctionLabels
返回 目录