ab.com コミュニティ

ActiveBasicを通したコミュニケーション
現在時刻 - 2018年5月21日(月) 10:34

All times are UTC+09:00




新しいトピックを投稿する  トピックへ返信する  [ 2 件の記事 ] 
作成者 メッセージ
投稿記事Posted: 2017年12月20日(水) 19:11 
オフライン

登録日時: 2006年2月05日(日) 17:10
記事: 192
住所: 東京都
下記のサンプルプログラムTESTA.ABPの様に
①SUB~END SUBの途中で抜け出すときEXIT SUB命令であるべきところをEXIT FUNCTION命令を記載
②FUNCTION~END FUNCTIONの途中で抜け出すときEXIT FUNCTION命令であるべきところをEXIT SUB命令を記載

上記①②のケースではコンパイルエラーになると思いましたが、問題なくコンパイルと実行ができました。

そこで確認したいのですが、これは仕様でしょうか?
特にこれといった問題は起きていませんが。

確認環境はWindows 7/SP1(X86)
確認バージョンはAB4.24とAB5/CP4とAB5/CP5
よろしくお願いいたします。

サンプルプログラム
TESTA.ABP
/*********/
/* TESTA */
/*********/
TESTASUB()
TESTAFUNC()
MessageBox(NULL,"TEST END","TESTA",MB_OK)
SUB TESTASUB()
DIM A AS Long
MessageBox(NULL,"EXIT FUNCTION","TESTA",MB_OK)
EXIT FUNCTION 'コンパイルと実行問題なし
A = 0
END SUB
FUNCTION TESTAFUNC() AS Long
DIM A AS Long
MessageBox(NULL,"EXIT SUB","TESTA",MB_OK)
EXIT SUB 'コンパイルと実行問題なし
A = 0
END FUNCTION
END


通報する
ページトップ
投稿記事Posted: 2017年12月21日(木) 19:20 
オフライン

登録日時: 2005年9月02日(金) 22:15
記事: 89
住所: 静岡県焼津市
お世話になります。

 64bit版コンパイラでもテストしてみました。

確かに正常にコンパイル→実行→抜け出していますね。
コード:
#strict

TESTASUB()

TESTAFUNC()

SUB TESTASUB()
    MessageBox(NULL,"SUB内EXIT FUNCTION1","SUB内EXIT FUNCTION1",MB_OK)
    EXIT FUNCTION
    MessageBox(NULL,"SUB内EXIT FUNCTION2","SUB内EXIT FUNCTION2",MB_OK)
END SUB

FUNCTION TESTAFUNC() AS Long
         MessageBox(NULL,"FUNCTION内EXIT SUB1","FUNCTION内EXIT SUB1",MB_OK)
         EXIT SUB
         MessageBox(NULL,"FUNCTION内EXIT SUB2","FUNCTION内EXIT SUB2",MB_OK)
END FUNCTION

END

プロシージャ内の「EXIT」 は、なんでも機能する?・・・
FOR I=1 TO 10:xxxxx:NEXT みたいですね・・・
ちなみに"EXIT SUB"や”EXIT FUNCTION"を"EXIT A"や"EXIT B"、"EXIT"のみにするとエラーとなります。


通報する
ページトップ
期間内表示:  ソート  
新しいトピックを投稿する  トピックへ返信する  [ 2 件の記事 ] 

All times are UTC+09:00


オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[3人]


トピック投稿:  可
返信投稿:  可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

検索:
ページ移動:  
Powered by phpBB® Forum Software © phpBB Limited
Japanese translation principally by KONISHI Yohsuke