■ 現在のこのページの役立ち度:
表示されない場合こちらのリンクからもご覧になれます。
■ このページの役立ち度を評価する:
役立ち度を評価してください。
(1(左):あまり役立たない - 5(右):大変役立った):
■ ページの共有:
[ サイト内検索 ]
カスタム検索
#37878-0for の抜け方中沢2001-01-29(月) 11:38
     #37882-0RE#37878:for の抜け方みゃお2001-01-29(月) 12:55
     #37883-0RE#37878:for の抜け方よねKEN2001-01-29(月) 13:23
     #37891-0RE#37883:for の抜け方匿名378912001-01-29(月) 14:43
     #37890-0RE#37882:for の抜け方匿名378902001-01-29(月) 14:43
#37878-0
for の抜け方
for .... nextでの抜け方について質問があります。

たとえば
for i=0 to 10
  for j=0 to 10
    for k=0 to 10
      errflag=err_check()         ;エラーが発生したらerrflag=trueになる
      if errflag then exit for
    next
    if errflag then exit for
  next
  if errflag then exit for
next
exit sub

と多重のループの一番上から抜ける場合は上記のコーディングをしなくては
ならないのでしょうか?
私としてはループ毎にExit forで抜けるのはかったるいので

for i=0 to 10
  for j=0 to 10
    for k=0 to 10
      errflag=err_check()         ;エラーが発生したらerrflag=trueになる
      if errflag then goto jmp00  ;一気に多重ループから抜ける
    next
  next
next
jmp00:
exit sub

とやりたいのですが、ループから直接Gotoで抜けるのは問題ありかな?と
思いまして・・・
詳しい方、お教え下さい。
#37882-0
RE#37878:for の抜け方
> とやりたいのですが、ループから直接Gotoで抜けるのは問題ありかな?と
> 思いまして・・・

私はいつも、ど真ん中でExit Subしてますが。。。(汗)
問題あるのはWithブロックの中のループでWithブロックの外へ抜ける場合じゃなかったでしょうか?
#37883-0
RE#37878:for の抜け方
> とやりたいのですが、ループから直接Gotoで抜けるのは問題ありかな?と

Goto使わないために、前者のようにやるなら、後者でやる方がいいと思います。

でも、ロジックの工夫で多重ループ、そこからの脱出を避けたり、
(複雑にならずに)回避可能なら、そうした方がいいでしょうけど。
#37891-0
RE#37883:for の抜け方
> Goto使わないために、前者のようにやるなら、後者でやる方がいいと思います。
ループしている中で、Gotoによるループアウトをすると、スタックがらみで
問題が発生るのかな?と思たんですよ。(VBが実際に内部的にどうやっているのかは
不明なので予測に過ぎないんですけどね)

> でも、ロジックの工夫で多重ループ、そこからの脱出を避けたり、
> (複雑にならずに)回避可能なら、そうした方がいいでしょうけど。
今回はGotoで抜けちゃう方法で行きます。
ども、アドバイス有り難うございました。
#37890-0
RE#37882:for の抜け方
> 私はいつも、ど真ん中でExit Subしてますが。。。(汗)
> 問題あるのはWithブロックの中のループでWithブロックの外へ抜ける場合じゃなかったでしょうか?
そうなんですか?。知りませんでした。
とりあえず、真ん中でExit SubもGotoの先でExit Subも違いがない様な
気がしますので、今回はGotoで抜ける方法で行きます。
ども、有り難うございました。
お探しの情報は見つかりましたか?お困りの問題は解決しましたか?
サイト内検索, 似た記事検索で見つからなくてもあきらめずに掲示板で質問してみましょう。
VB初心者友の会があなたのお役に立てれば幸いです。また、本ページの投稿者の方々にこの場を借りて感謝致します。
本ページは過去ログを集めて自動構成しています。よろしければこのページに関するフィードバックをお願いします。
(※ 構成の誤り、広告等の不適切な記事、リンク切れ、読めないページの報告など)