作成者 |
メッセージ |
|
|
記事の件名: |
Re: SUB~END SUB/FUNCTION~END FUNCTIONの途中で抜け出すとき |
引用付きで返信する |
|
お世話になります。
64bit版コンパイラでもテストしてみました。
確かに正常にコンパイル→実行→抜け出していますね。
[ここをクリックすると内容が表示されます] [ここをクリックすると非表示にします]
コード:
#strict
TEST_SUB()
TEST_FUNC()
SUB TEST_SUB()
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 TEST_FUNC() 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"のみにするとエラーとなりました。
お世話になります。
64bit版コンパイラでもテストしてみました。
確かに正常にコンパイル→実行→抜け出していますね。
[hide] [code] #strict
TEST_SUB()
TEST_FUNC()
SUB TEST_SUB() 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 TEST_FUNC() 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 [/code] [/hide]
プロシージャ内の「EXIT」 は、なんでも機能する?・・・ FOR I=1 TO 10:xxxxx:NEXT みたいですね・・・ ちなみに"EXIT SUB"や”EXIT FUNCTION"を"EXIT A"や"EXIT B"、"EXIT"のみにするとエラーとなりました。
|
|
|
投稿記事 |
Posted: 2017年12月21日(木) 19:20 |
|
|
|
|
|
記事の件名: |
SUB~END SUB/FUNCTION~END FUNCTIONの途中で抜け出すとき |
引用付きで返信する |
|
下記のサンプルプログラム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
下記のサンプルプログラム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 よろしくお願いいたします。
サンプルプログラム [hide][code]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 [/hide][/code]
|
|
|
投稿記事 |
Posted: 2017年12月20日(水) 19:11 |
|
|
|
|