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で質問しましょう!
似たような質問が見つかりました
- 中学校 Do you want a new bag? Want you a new bag? この二つの違い 3 2022/07/30 15:55
- 高校 対数方程式につきまして 4 2022/05/05 07:55
- Visual Basic(VBA) vba GetAsyncKeyState関数について 1 2023/08/24 12:08
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- Android(アンドロイド) 1.FMラジオ非対応のAndroidスマホでFM受信してラジオを聴く方法を教えてください。 radi 2 2023/05/14 22:31
- Visual Basic(VBA) エクセル VBA 条件付き書式 簡略化したい 2 2022/06/02 17:46
- オープンソース ChatGPTをスプレッドシートと連携して自動でリサーチしたいんですがうまく出来ません。。。 1 2023/05/05 15:59
- docomo(ドコモ) 該当する端末を探しています(ドコモで使用)。 3 2023/01/23 11:53
- 占い おすすめのタロット/オラクル/ルノルマンカードを探しています 1 2022/09/10 10:02
- Excel(エクセル) エクセル 条件に合う日付に入力された時間数の合計したい 4 2022/06/17 22:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
VBAでループ内で使う変数名を可...
-
switch の範囲指定
-
【Excel】特定の文字を含むセル...
-
Do~Loopした回数をカウントしたい
-
VBの質問#if 0 then ってどう...
-
EXCEL VBA マクロ 実行する度に...
-
DoEventsがやはり分からない
-
メルカリのメルカードで買い物...
-
インタラクティブの反対語は?
-
リョウ・・・量?料?
-
2重のDo~Loopは?
-
VB.NET Excelを読み込んでDataT...
-
FFTの結果ついて
-
タッチパッドはチャタリングは...
-
C# 画面のちらつきを解消したい
-
セルの値が0はクリアするマクロ
-
VBA SaveChanges 上書きされない
-
UMLでの例外処理
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
メルカリのメルカードで買い物...
-
エクセルで、日付を入力すると...
-
VBAでループ内で使う変数名を可...
-
【Excel】特定の文字を含むセル...
-
EXCEL VBA マクロ 実行する度に...
-
switch の範囲指定
-
DoEventsがやはり分からない
-
VBの質問#if 0 then ってどう...
-
UMLでの例外処理
-
Do~Loopした回数をカウントしたい
-
VB.NET Excelを読み込んでDataT...
-
月度は何て読みますか?
-
findは動くがfindnextがマクロ...
-
リョウ・・・量?料?
-
iD
-
VBA SaveChanges 上書きされない
-
Select Case文でこのようなこと...
-
Loadイベント中にほかのイベン...
-
セルの値が0はクリアするマクロ
おすすめ情報