VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 2002/09/10(Tue) 21:55
投稿者NAO★
Eメール
URL
タイトル不正解です

> 間違いました!!
>
> >  答えは、(1)に(c)、(2)に(a)、(3)に(e)です!

残念ですが、違います。
(1)に(c)というのだけ合ってます。

ヒント、その2: わかりにくいため再度ソースを掲示します
Dim flag as boolean
flag = False
For v = 1 To 4 '--------------------------------+
  For 日2 = 日 To 日 + 7 Step 1 '---+           |
    If Len(MyFile2) > 1 Then    '   |           |
      flag = True  ' (1)        '   +-ループB   +--ループA
      (2)                       '   |           |
    End if                      '---+           |
  Next         '--------------------------------+
  Exit For '(3) ※不正解です
Next

なぜ(3)で(e) Exit Forではダメなのでしょう。
ループA が一回目のときに
>    If Len(MyFile2) > 1 Then
が成立すれば問題ないですが、成立しなかったときはどうなりますか?
内側のループB が何事も無く終了したときに(3) Exit For で
無条件でループを打ち切ってしまうため、
外側のループA は[常に]1回しか実行されなくなってしまうからです。

つまり Exit For は通常 if と共に使います。


ちなみに(2) に
>(a) If flag = True Then Exit For
を使用することは無意味です。
すぐ上の行で flag = true にしているので[必ず] If の条件が成立するからです。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -