Skip to content

GOTO


用于跳转到程序另一部分的控制流语句。

语法

Goto label

描述

将代码执行跳转到行标签处。

当使用 Goto label 退出某个作用域时,在该作用域中定义的所有局部变量将被销毁(调用析构函数)。

Goto label 跳过了变量定义但未跳出该变量的作用域末尾时,可能不允许使用 Goto label。如果该变量需要构造,则会显示编译器错误。对于其他变量,则会显示编译器警告。这是为了防止对未初始化变量的潜在访问,并确保未初始化变量不会发生自动析构。

为了提高源代码的可读性,应避免过度使用 Goto,转而使用更现代的结构,如 Do...LoopFor...NextSubFunction

示例

start GeSHi

vb
    Goto there

backagain:
    End

there:
    Print "Welcome!"
    Goto backagain

end GeSHi

start GeSHi

vb
'' Compile with -lang qb or fblite

'$lang: "qb"

1 Goto 3
2 End
3 Print "Welcome!"
4 Goto 2

end GeSHi

方言差异

  • 行号仅在 -lang qb-lang deprecated 方言中允许使用。
  • -lang qb-lang fblite 方言中,Goto label 允许跳过任何变量定义,因为不支持嵌套作用域,所有变量定义都被移到其所在过程的顶部。

与 QB 的差异

参见

  • Gosub
  • Sub
  • Function
  • Labels

返回 目录

基于 FreeBASIC 官方文档翻译 如有侵权请联系我们删除
FreeBASIC 是开源项目,与微软公司无隶属关系