一気にいくつものステートメントを紹介していきます。ラベルからReturnまでです。

ラベルステートメント
ラベル名
ラベル名
‘*’ 識別子
GoSubステートメント
‘Gosub’ ラベル名
Gotoステートメント
‘Goto’ ラベル名
Returnステートメント
‘Return’ 式?

ラベルは言わずと知れたGoto, GoSubの飛び先となる場所です。アスタリスクを先頭に置くことでラベルであることを主張します。

私はABのコンパイラがラベルを1つのステートメントとして扱っているように感じたため、ラベルをステートメントとしました。このコードもコンパイルできるのです。コロンで区切ってマルチステートメントの一部にできるのなら、それはステートメントと言って差し支えないでしょう。

*L : Goto *L

GoSubとGotoは特に問題ないでしょう。ラベル名を並べる必要があるだけです。今までも無視してきたので、行番号は無視させてもらいます。

Returnは式を置いても構わないことになっていますが、これはAB5から関数 (Function/Sub)内ではReturnが関数から抜けるステートメントになったためです(※)。Function内でのみReturnの後に式を置けます。C++のようにSub内のReturnでは結果がVoid型(にあたるもの)となる式が置けるという風にはなっていないようです。今のABでは必要性ないでしょうけど。

Sub Proc1()
	Return
End Sub

Sub Proc2()
	Return Proc1()
End Sub

※このため、関数内ではGoSub – Returnが使えなくなっています。


スポンサード リンク

この記事のカテゴリ

  • ⇒ 構文定義 (11) 飛び越し系ステートメント