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回は必ず繰り返し処理をさせたい場合は後ろに置きます。
わかりにくかったらすみません。
では。
回答ありがとうございました!だいぶわかりました!
けど、いまいちどういうときに繰り返しを使うのかが
いまいちわかりません・・・。とにかくがんばってみます!
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で処理した方がメンテナンスを行いやすいと思います。
回答ありがとうございました!
まだ初めて間もないのでこれからもいろいろと
聞く機会が多くなるけど、これからもよろしくお願いします!
もしよければ、いいVBの本があったら教えてください!
お願いします!
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
回答ありがとうございます!
そういえば、HELPがついてましたのわすれてました!(笑
参考にさせてもらいます!
本当にありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
VBAでループ内で使う変数名を可...
-
エクセルで、日付を入力すると...
-
月度は何て読みますか?
-
リョウ・・・量?料?
-
VBAでセルに値が入力されるまで...
-
メルカリのメルカードで買い物...
-
EXCEL VBA マクロ 実行する度に...
-
DoEventsがやはり分からない
-
UMLでの例外処理
-
【Excel】特定の文字を含むセル...
-
FFTの結果ついて
-
セックスレスの既婚女性は自慰...
-
VBの質問#if 0 then ってどう...
-
switch の範囲指定
-
vba 空のデータをSplitする時の...
-
インタラクティブの反対語は?
-
findは動くがfindnextがマクロ...
-
CStringの中から数字だけの場合...
-
2重のDo~Loopは?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
VBAでループ内で使う変数名を可...
-
メルカリのメルカードで買い物...
-
【Excel】特定の文字を含むセル...
-
DoEventsがやはり分からない
-
プログラミング言語についてc++...
-
EXCEL VBA マクロ 実行する度に...
-
UMLでの例外処理
-
switch の範囲指定
-
FFTの結果ついて
-
お家デートをしててハグを長い...
-
VBの質問#if 0 then ってどう...
-
findは動くがfindnextがマクロ...
-
離散時間フーリエ変換について
-
VB.NET Excelを読み込んでDataT...
-
インタラクティブの反対語は?
-
月度は何て読みますか?
-
リョウ・・・量?料?
-
Do~Loopした回数をカウントしたい
おすすめ情報