Return
 
控制流程语句,从过程或GoSub返回.

语法

Return [ expression ]
or
Return [ label ]


说明

Return用于从过程返回或从gosub返回GoSub.

因为Return可能意味着从gosub返回或从程序返回,Option GosubOption Nogosub可用于启用和禁用GoSub支持。当GoSub支持被禁用时,Return被识别为从过程返回。启用GoSub支持后,Return就会被识别为from-gosub。

Return(从过程中)在过程中使用可能返回值退出该过程。A Sub无法指定返回值。在Function中,Return必须指定其返回值。Return expression 大致相当于Function = expression : Exit Function成语。

Return(来自gosub)用于将控制权返回到先前GoSub调用之后的语句。当与GoSub组合使用时,不能指定返回值。如果指定了可选的label ,则在指定的标签处继续执行。如果没有GoSub,则会生成运行时错误,并在Return之后立即执行。

这个 GoSub应始终具有匹配的Return语句。但是,如果Return(来自gosub)被用于没有GoSub的地方,则会生成运行时错误。

例子

''GOSUB &返回示例,使用“-lang qb”编译或使用“$ lang”如下

'$ lang:“qb”

Print "我们Gosub!"
GoSub MyGosub
Print "从Gosub回来!"
Sleep
End

MyGosub:
Print "在Gosub!"
Return


''从功能返回

Type rational              ''简单有理数字类型
    numerator As Integer
    denominator As Integer
End Type

''将两种理性类型相乘
Function rational_multiply( r1 As rational, r2 As rational ) As rational

    Dim r As rational
    ''乘以除数...
    r.numerator   = r1.numerator   * r2.numerator
    r.denominator = r1.denominator * r2.denominator

    ''...并返回结果
    Return r

End Function

Dim As rational r1 = ( 6, 105 )   ''定义一些理性r1和r2
Dim As rational r2 = ( 70, 4 )
Dim As rational r3

r3 = rational_multiply( r1, r2 )  ''乘以并将结果存储在r3中

''显示表达式
Print r1.numerator & "/" & r1.denominator; "*";
Print r2.numerator & "/" & r2.denominator; "=";
Print r3.numerator & "/" & r3.denominator


方言差异

  • -lang fb 方言返回中始终表示从程序返回。
  • -lang qb 方言中,返回表示默认情况下退回gosub,除非选项Nogosub更改,否则编译器将识别返回作为从程序返回。
  • -lang fblite 方言中,返回表示从选项Gosub更改时,默认情况下返回过程,在这种情况下编译器将识别返回as-from-gosub。

与QB差别

参考