- ベストアンサー
GOTO文の使い方
非常に単純で申し訳ない質問なのですが もし ~の条件を満たさない場合 ~へ行くというプログラムを組みたいのですが ちょっとよく分かりません GOTO文を使えば良いのでしょうか?一回 IF 条件 GOTO (文字) とやりましたところ (文字)の部分が指定されていないと でました 本などで調べれば良いのですが, ちょうどその本を忘れてしまい 困っているところです また,このプログラムは他人が作ったものを修正する作業ですので勝手も分からない状態です 単純質問でもうしわけありませんが宜しくお願いします
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
>このプログラムは他人が作ったものを修正する作業 ということは元のプログラムにはGOTOはないんですよね? じゃあGOTOを使用しない方向で考えたほうがいいのでは? 一般的にはGOTOは使用しないほうがいいです。 (ルールなしにGOTOを多用するといとも簡単に解読不能なプログラムができるため。) たとえば if (条件1) then (条件1成立時の処理) elseif (条件2) then (条件2成立時の処理) .... else (該当なし時の処理) end if のようなやり方で置き換えできませんか? もしくは別のSUBを作ってそれをCALLするとか。
その他の回答 (5)
- dempa_hakeen
- ベストアンサー率4% (2/44)
No.4 > ということは元のプログラムにはGOTOはないんですよね? > じゃあGOTOを使用しない方向で考えたほうがいいのでは? > 一般的にはGOTOは使用しないほうがいいです。 後のメンテは自分がやるとは限らないのだから、スパゲティ化して可読性が悪化しようが、品質が劣化しようが知ったことではないのでは? 自分にとばっちりが来ないのなら、グローバル変数、マジックナンバー、GOTO文、Variant、非構造化、なんでもありでは? # 元のソースの出来が悪いからこんなところで相談してるんだろうし。
- y-hiro
- ベストアンサー率11% (2/18)
sub a() If *** then xxxx goto 5 '条件を満たした時5のラインに飛ぶ else goto 10'条件を満たさない時10のラインに飛ぶ End if ・ ・ ・ 5 Msgbox(XXXXX) ・ Exit sub 10: Msgbox(YYYYY) End sub 「:」は入れなくても結構(コード内の5のように独立していない場合) 10のように独立したコードの場合「:」は入れたほうがよいと思います
- tinu 2000(@tinu2000)
- ベストアンサー率40% (147/366)
if hoge > 5 then goto koko1 if hoge > 2 then goto koko2 ・ ・ ・ ・ koko1: hoge=hoge+1 goto koko9 koko2: hoge=hoge+2 goto koko9 ・ ・ koko9: end sub こんな具合です。 おそらく、ラベルの後の:が無かったのでは? それとあまり goto を多用するとわからなくなりますので、ご注意を!です。 ではでは。
- 0shiete
- ベストアンサー率30% (148/492)
ネットにつながっているのでしたら、 検索すれば、参考になるページが たくさん出てくると思いますよ。
- taknt
- ベストアンサー率19% (1556/7783)
goto 文の使い方ですね。 goto ラベル と書きます。 で ラベルを どこかに 書くと そのラベルにジャンプします。
補足
すみません 私もそのようにラベルらしきものを設定したのですが ラベルが指定されていませんとでました できれば ちょっとした具体例などあったならば…と思います 差し出がましいようですが 宜しくお願いします