アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (3件)

こんにちは。

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回は必ず繰り返し処理をさせたい場合は後ろに置きます。
わかりにくかったらすみません。
では。
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/10/25 10:46

本題と少し離れてしまいますが・・・


「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で処理した方がメンテナンスを行いやすいと思います。
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/10/25 10:50

説明は#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
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/10/25 10:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!