一気にいくつものステートメントを紹介していきます。ラベルから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が使えなくなっています。
スポンサード リンク |