
下記のような例文がありますが、 Do While (1)の括弧1の意味がわかりません。
Stri = ""
iCount = 3 '入力データ開始行
Do While (1)
If Trim(Sheets("テスト").Range("A" & iCount)) = "" Then
Exit Do
End If
Stri = Stri & Sheets("テスト").Range("G" & iCount) & ","
iCount = iCount + 1
Loop
以下のような使い方ならわかるのですが・・・・。
Do While Counter < 20
Counter = Counter + 1
MsgBox Counter
Loop

No.1ベストアンサー
- 回答日時:
つまり「ずっとループ」ってことです。
ループの入り口や出口で継続判断をせず、ループ内で判断をする場合の方法です。
単純に
Do
' ループ内の処理
Loop
とも書けますが、ループ処理のコードが長い場合、一度に Do と Loop を見渡すことが出来ませんので、Do の行を見ただけで「終了判断は中でやってるんだろうな」と理解できるように Do の行で意味のない (1) を書いています。
No.4
- 回答日時:
s_husky です。
回答にミスが!For-Next文です。
No.3
- 回答日時:
Do While (条件) - Loop文 は、()内の条件をテストした結果が真であれば処理を繰り返します。
通常は、条件=条件式です。
よって、処理後に行われるテストで、いずれ真から偽へと変化しループを終了します。
(1)と書けば、1=真という約束事ですから、永遠に偽にはなりません。
無限ループする理由です。
さて、Do While (条件) - Loop文は、For Next-End文に置き換えることが可能です。
For I = 3 To 9999
If Trim(Sheets("テスト").Range("A" & iCount)) = "" Then
Exit Do
End If
・・・・・
Next I
この場合、For のループ回数は便宜上 9999 としていますが、実際は未定です。
よって、カウントすべき行が無くなった時点で For ループを抜けています。
このように、どうせループを抜け出す判定を組み込むならば For文は無限ループしても良い訳です。
ところが、For文には無限ループを指定することができません。
ならば、Do While (条件) - Loop文を使おうということでしょう。
> For文には無限ループを指定することができません。
> ならば、Do While (条件) - Loop文を使おうということでしょう。
ははぁ~ん!よ~くわかりました。
有難うございます。
No.2
- 回答日時:
>括弧1の意味がわかりません。
「常に真(TRUE)」です。
このプログラムでは Exit Do でループから抜けることを前提にしていて Exit Do が実行されない場合には無限にループが続きます。
ちなみに、もし無限ループ状態になってプログラムが止まらなくなっても Ctrl + Break のキー操作で強制終了できます。
なあるほど、常に真(TRUE)ですか。
ためにしにDo While (0)でやってみました。案の定回りません。
こういう書き方もあるんですね、勉強になりました。
有難うございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
他言語で言うcontinue文
-
Aの値からBの値を除するとは??
-
信頼区間の1.96や1.65ってどこ...
-
20'(角度)の計算がわかりま...
-
「指定されたキャストは有効で...
-
独立係数について教えて下さい。
-
「Aに対するBの割合」と「Aに対...
-
scanfの入力をgets関数で読み捨...
-
2番以降って2番も含まれますか...
-
エクセルで可視セルにのみ値貼...
-
C言語での引数の省略方法
-
return 1L
-
Enterキーを押されたら次の処理...
-
c languageで 簡単な質問があ...
-
静的でないメンバ関数の呼び出...
-
プログラムでの数字につく”f”の...
-
マイナスからプラスへ転じた時...
-
cshの文字列操作(0埋め)
-
C言語 行列計算
-
中学生で数学です。 √84nが自然...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
do-while文が禁止される理由
-
C言語forループが完結した場合...
-
ループを途中で抜けたいのですが。
-
入力した数値を倍々するプログラム
-
エクセルVBAで Do While (1)って?
-
UWSCにてある一定の動作を無限...
-
break文でループを一気に抜ける...
-
Excel VBAで年度をまたぐ期間の...
-
プログラムで関数は使わない方...
-
PAD図の書き方
-
C言語、whileループを抜け出す...
-
VBScriptでSQLに接続し、CSV出...
-
プログラムの解説をお願いします。
-
Delphiで・・・
-
clock関数を利用した時間計測法...
-
__asm int 3でのブレイクポイン...
-
入力した文字列から母音だけを...
-
ループの特定入力終了
-
Cプログラムが終了しない
-
if文の中にfor文なのか、for文...
おすすめ情報