ab.com コミュニティ

ActiveBasicを通したコミュニケーション
現在時刻 - 2024年3月28日(木) 17:30

全ての表示時間は UTC+09:00 です




新しいトピックを投稿する  トピックへ返信する  [ 3 件の記事 ] 
作成者 メッセージ
 記事の件名: Gotoの措定先
投稿記事Posted: 2019年6月12日(水) 11:48 
Goto先は、制約なしに指定しも良いのでしょうか?

例えば
If a=1 Then *JMP Else *jmp2
.
.

If i=1 Then
*Jmp1


If t=1 Then
*JMP2
.
.
End If
End If

上記の様に記述しても構わないのでしょうか?

よろしくお願いします


通報する
ページトップ
   
 記事の件名: Re: Gotoの措定先
投稿記事Posted: 2019年6月12日(水) 19:54 
オフライン

登録日時: 2006年2月05日(日) 17:10
記事: 215
お住まい: 東京都
AB4.24で試してみたところコンパイルエラーにならなかったため記載することは可能でした。
しかし実行すると、
下記のケース1は問題ありませんでしたが、
下記のケース2はIの値が1以外にもかかわらず*JMP1に分岐されていました。
なのでこのような記載はやめたほうがよいと私は思いますが。
ご確認よろしくお願いいたします。

ケース1
DIM A AS Long
A = 2
IF A = 1 THEN *JMP1 ELSE *JMP2
*JMP1
MessageBox(NULL,"*JMP1","TEST",MB_OK)
END
*JMP2
MessageBox(NULL,"*JMP2","TEST",MB_OK)
END

ケース2
DIM I AS Long
DIM T AS Long
I = 2
T = 1
IF I = 1 THEN
*JMP1
END IF
IF T = 1 THEN
*JMP2
END IF
*JMP1
MessageBox(NULL,"*JMP1","TEST",MB_OK)
END
*JMP2
MessageBox(NULL,"*JMP2","TEST",MB_OK)
END


通報する
ページトップ
 記事の件名: Re: Gotoの措定先
投稿記事Posted: 2019年6月15日(土) 16:42 
たかせ様、検証までして頂きましてありがとうございました!

If a=1 Then *JMP1 Else *jmp2
.
.
End If

------------------------------

If t=1 Then
If i=1 Then
*Jmp1


ElseIf i=2 Then
*JMP2
.
.
End If
End If

最初に質問させて頂いた例より今回の例の方が分かり安いかと、コンパイルしてもエラーにも成らないし実行も出来るのですが、スタックが溜まっていって関係のない所で原因不明のエラーが出るんじゃないかと思ったもんですから質問させて頂きました。

今現在は、下記の通り記述しています。

If a=1 Then i=1 Else i=2
t=1: Goto *jmp
.
.
End If

------------------------------

*Jmp
If t=1 Then
If i=1 Then


ElseIf i=2 Then
.
.
End If
End If

よろしくお願いします


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

全ての表示時間は UTC+09:00 です


オンラインデータ

このフォーラムを閲覧中のユーザー: Ahrefs [Bot], Bing [Bot] & ゲスト[12人]


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

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