ab.com コミュニティ

ActiveBasicを通したコミュニケーション
現在時刻 - 2018年11月22日(木) 02:38

All times are UTC+09:00




トピックに返信する
ユーザー名:
件名:
メッセージ本文:
こちらにメッセージをご入力ください。60000 字まで入力できます。 

フォントサイズ:
フォントカラー
オプション:
BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: OFF
BBCode を無効にする
URL を自動的にパースしない
クイズ
お手数ですがカタカナで「エービー」と4文字を入力してください。:
答えを正確にご入力ください。答えられるかどうかでスパムボットか否かを判定します。
   

トピックのレビュー - SUB~END SUB/FUNCTION~END FUNCTIONの途中で抜け出すとき
作成者 メッセージ
  記事の件名:  Re: SUB~END SUB/FUNCTION~END FUNCTIONの途中で抜け出すとき  引用付きで返信する
お世話になります。

 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"のみにするとエラーとなりました。
投稿記事 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
投稿記事 Posted: 2017年12月20日(水) 19:11

All times are UTC+09:00


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