投稿日 | : 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 の条件が成立するからです。