GOTOの代わりになる命令


なーゆ  2012-06-14 20:22:21  No: 103300  IP: 192.*.*.*

GOTOに近い働きの命令はありませんか?
ないならIF文などで近い働きなどをさせる方法を教えてください。

編集 削除
なーゆ  2012-06-14 20:26:43  No: 103301  IP: 192.*.*.*

あ、どっちもない場合は下の文字をコピペしてください。
無い!無い!無い!

編集 削除
YuO  2012-06-14 21:00:03  No: 103302  IP: 192.*.*.*

何をもって「近い働き」とするのでしょうか。

元々Visual BasicにはGo To文が存在します。
それを使わずに代替する方法はありますが,その構造に依存します。

編集 削除
なーゆ  2012-06-14 21:29:29  No: 103303  IP: 192.*.*.*

あるって聞いてないorz
で、どうやって使いますか?

編集 削除
YuO  2012-06-15 00:41:54  No: 103304  IP: 192.*.*.*

> あるって聞いてないorz

Go To文が存在するのは事実です。

面と向かっていたり電話をつかったりしてリアルタイムに会話をしているのではないのですから,
質問の意図と異なる回答が来たのであれば,意図をちゃんと言葉で説明してください。


> で、どうやって使いますか?

Go To文はあるけれども,そもそも代替構文の方しか使いませんし,それが推奨されます。
例えば,For-Next文から脱出するためのGo ToはExit Forを使うべきです。

編集 削除
魔界の仮面弁士  2012-06-15 09:10:52  No: 103305  IP: 192.*.*.*

》YuO さん
> Go To文が存在するのは事実です。
「Go To」文はありません。GO と TO の間にスペースを含まない
「GoTo」ステートメントであれば、VB2、VB6、VB2010、VBA 等々で利用できます。


》なーゆさん
> GOTOに近い働きの命令はありませんか?
上記のとおり、GoTo 自体は利用できますが、もしもお使いの言語が
VBScript (Visual Basic Scripting Edition)だとしたら、
GoTo ステートメントを使う事はできません。
http://madia.world.coocan.jp/cgi-bin/VBBBS/wwwlng.cgi?print+200302/03020027.txt


で…質問文にある「GoTo に近い働き」という点が曖昧なのですが、
VB6 で利用可能なジャンプ命令としては、下記のようなものがあります。


・GoSub ステートメント (サブルーチンを呼び出す)
・「On 整数 GoSub 分岐先リスト」ステートメント (ジャンプ先条件分岐付きのGoSub)
・「On 整数 GoTo 分岐先リスト」ステートメント (ジャンプ先条件分岐付きのGoTo)
・「On Error GoTo 分岐先」ステートメント (エラートラップ時専用のGoTo)
・Exit Sub ステートメント (Sub プロシージャを脱出する)
・Exit Function ステートメント (Function プロシージャを脱出する)
・Exit Property ステートメント (Function プロシージャを脱出する)
・Exit Do ステートメント (Do〜Loop のループを脱出する)
・Exit For ステートメント (For〜Next または For Each〜Next のブロックを脱出する)

この他、Call ステートメントや Select Case ステートメント、
あるいは各種ループ命令なども、稀に広義のジャンプ命令の一種として
考えられることがあります。


> で、どうやって使いますか?
VB付属のヘルプで、「GoTo ステートメント」について調べてみてください。
具体的な「使用例」つきで掲載されていますよ。


ただし一般的に、「GoTo ステートメント」が必要になることは稀ですし、
ヘルプにも、代わりに構造化された制御ステートメント
(Do〜Loop、For〜Next、If〜Then〜Else、Select Case など)を
代わりに使うように案内されています。

GoTo ではなく、「On Error GoTo ステートメント」なら使われますけれどね。

編集 削除
YuO  2012-06-15 11:01:56  No: 103306  IP: 192.*.*.*

> 「Go To」文はありません。GO と TO の間にスペースを含まない

使わないので勘違いしてました。
ご指摘ありがとうございます。

編集 削除
なーゆ  2012-06-15 11:42:04  No: 103307  IP: 192.*.*.*

もうちょっと簡単に言ってください...

編集 削除
なーゆ  2012-06-15 11:47:42  No: 103308  IP: 192.*.*.*

あと、ステートメントを試しに打って下さい。

編集 削除
なーゆ  2012-06-16 18:56:41  No: 103309  IP: 192.*.*.*

誰の返事も無い(泣)

編集 削除
なーゆ  2012-06-17 18:18:00  No: 103310  IP: 192.*.*.*

誰か答えてorz

編集 削除
やさしいひと  2012-07-02 11:09:20  No: 103311  IP: 192.*.*.*

上の説明で理解できないようなので、こう使うのよ!

sub test
 if msgbox("Aにいく?",vbyesno) = vbyes then 
      goto aaa
 else
      goto bbb
 end if
 
aaa:
    msgbox("A")
    exit sub
bbb:
    do
         doevents
         if msgbox("ループ止める?",vbyesno) = vbyes then exit do
    loop

end sub

編集 削除
なーゆ  2012-07-06 18:10:47  No: 103312  IP: 192.*.*.*

》やさしいひとさん
> 上の説明で理解できないようなので、こう使うのよ!
ありがとうございます。

編集 削除