• ベストアンサー

プログラムでのLOOPについて・・・。

こんにちわっ! 最近VISUAL BASICをはじめたんですけど WHIE条件・DO WHIE条件・DO WHIE条件・LOOP WHIE条件の使い方がよくわかりません。 これらの使い方を教えてください!

質問者が選んだベストアンサー

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 以下のような違いです。 (1)   Do While 条件式     繰り返すステートメント   Loop 条件式がTrueである限り、繰り返す。まず条件式の評価を行ったのち、繰り返し処理をするかどうか判断する。 (2)   Do     繰り返すステートメント   Loop While 条件式 条件式がTrueである限り、繰り返す。最初に必ず繰り返し処理を1回だけ行い、その後は条件式の評価を行ったのち、繰り返し処理をするかどうか判断する。 (3)   Do Until 条件式     繰り返すステートメント   Loop 条件式がFalseである限り、繰り返す。まず条件式の評価を行ったのち、繰り返し処理をするかどうか判断する。 (4)   Do     繰り返すステートメント   Loop Until 条件式 条件式がFalseである限り、繰り返す。最初に必ず繰り返し処理を1回だけ行い、その後は条件式の評価を行ったのち、繰り返し処理をするかどうか判断する。 まとめますと、Whileの方は条件式がTrueである限り繰り返し、UntilはFalseである限り繰り返します。 そして、WhileやUntilが前にある場合はまず条件式の評価を行い、後ろにある場合は、必ず1回は繰り返し処理を行います。 場合によって1回も繰り返し処理をしたくない場合は前に条件式を置き、1回は必ず繰り返し処理をさせたい場合は後ろに置きます。 わかりにくかったらすみません。 では。

tamatamaneginegi
質問者

お礼

回答ありがとうございました!だいぶわかりました! けど、いまいちどういうときに繰り返しを使うのかが いまいちわかりません・・・。とにかくがんばってみます!

その他の回答 (2)

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.3

本題と少し離れてしまいますが・・・ 「While~Wend」というのはあまり本に出てないので、ぼく個人の論理ですが、補足させていただきます。 (1)「While~Wend」のHELP While condition   [statements] Wend (2)「Do~Loop」のHELP Do [{While | Until} condition]   [statements]   [Exit Do]   [statements] Loop 何が違うかというと Exit Do でループを抜けることができる/できない という差があります。 ちなみにですが・・・ C言語では While (condition){   [statements] } と先ほどの(1)の記述と似たものがあります。 しかしC言語には、Exit DoにかわるBreakというのがあります。 しかしVBの「While~Wend」ではLoopを抜ける命令がありません。 もちろんGoto文で抜けることができますが、ループを抜けるだけのGoto文は好ましくありません。 どちらのループもループ内の処理が同じであれば、処理スピードは一緒です。(計測しました) であるならば、VBではDo~Loopで処理した方がメンテナンスを行いやすいと思います。

tamatamaneginegi
質問者

お礼

回答ありがとうございました! まだ初めて間もないのでこれからもいろいろと 聞く機会が多くなるけど、これからもよろしくお願いします! もしよければ、いいVBの本があったら教えてください! お願いします!

  • urk
  • ベストアンサー率33% (18/53)
回答No.2

説明は#1のmaruru01さんのが有りますので、サンプルで。 VBのHelpにもっといいサンプルいっぱいあるのでそっちの方がもっといいですけど。 ========================================= sub test1() dim i as long Dim Moji AS String open "c:\sutoexec.bat" for input as #1 while not EOF(1) line input #1,Moji Print Moji wend close #1 end sub

tamatamaneginegi
質問者

お礼

回答ありがとうございます! そういえば、HELPがついてましたのわすれてました!(笑 参考にさせてもらいます! 本当にありがとうございました!

関連するQ&A