第9講 For文以外の様々なループ文

第3話 Do While...Loop文、Do...Loop While文によるいろいろな和の計算 

Do While...Loop文によるいろいろな和の解答例
Private Sub CommandButton1_Click()

  Dim h As Long, o As Long, b As Long

  h = Cells(5, 2)
  o = Cells(6, 2)
  b = Cells(7, 2)
  f1 h, o, b '1乗の和の計算
  f2 h, o, b '2乗の和の計算
  f3 h, o, b '3乗の和の計算
  f4 h, o, b '4乗の和の計算

End Sub

'1乗の和の計算
Sub f1(h As Long, o As Long, b As Long)

  Dim i As Long, w As Long

  w = 0
  i = h
  Do While i <= o
    w = w + i
    i = i + b
  Loop

  Cells(9, 4) = w

End Sub

'2乗の和の計算
Sub f2(h As Long, o As Long, b As Long)

  Dim i As Long, w As Long

  w = 0
  i = h
  Do While i <= o
    w = w + i * i
    i = i + b
  Loop

  Cells(10, 4) = w

End Sub

'3乗の和の計算
Sub f3(h As Long, o As Long, b As Long)

  Dim i As Long, w As Long

  w = 0
  i = h
  Do While i <= o
    w = w + i * i * i
    i = i + b
  Loop

  Cells(11, 4) = w

End Sub

'4乗の和の計算
Sub f4(h As Long, o As Long, b As Long)

  Dim i As Long, w As Long

  w = 0
  i = h
  Do While i <= o
    w = w + i * i * i * i
    i = i + b
  Loop

  Cells(12, 4) = w

End Sub


皆さん、解答例を見て、『えっ、While文とどこが違うの?』と疑問を思い浮かべませんでしたか。
そうです。まったく、変わりありません。
ですから、While文でもDo While...Loop文でもどちらでもよいことになります。
自分が好きな方を使えばよいことになります。
ただ、プログラムの勉強では他人の組んだプログラムコードを読むことが大切です。
While文とDo While...Loop文の内、一方しか知らないと自分が理解している方と逆を使われてコードを書かれると理解できません。
結局は、両方を知っていなければなりません。

さて、Do...Loop While文を使うとどうなるでしょうか。
Do...Loop While文によるコード例
Private Sub CommandButton1_Click()

  Dim h As Long, o As Long, b As Long

  h = Cells(5, 2)
  o = Cells(6, 2)
  b = Cells(7, 2)
  f1 h, o, b '1乗の和の計算
  f2 h, o, b '2乗の和の計算
  f3 h, o, b '3乗の和の計算
  f4 h, o, b '4乗の和の計算

End Sub

'1乗の和の計算
Sub f1(h As Long, o As Long, b As Long)

  Dim i As Long, w As Long

  w = 0
  i = h
  Do
    w = w + i
    i = i + b
  Loop While i <= o

  Cells(9, 4) = w

End Sub

'2乗の和の計算
Sub f2(h As Long, o As Long, b As Long)

  Dim i As Long, w As Long

  w = 0
  i = h
  Do
    w = w + i * i
    i = i + b
  Loop While i <= o

  Cells(10, 4) = w

End Sub

'3乗の和の計算
Sub f3(h As Long, o As Long, b As Long)

  Dim i As Long, w As Long

  w = 0
  i = h
  Do
    w = w + i * i * i
    i = i + b
  Loop While i <= o

  Cells(11, 4) = w

End Sub

'4乗の和の計算
Sub f4(h As Long, o As Long, b As Long)

  Dim i As Long, w As Long

  w = 0
  i = h
  Do
    w = w + i * i * i * i
    i = i + b
  Loop While i <= o

  Cells(12, 4) = w

End Sub

ここで、また皆さんの頭には『結局、Do...Loop While文とWhile文やDo While...Loop文は何が違うの?』
と?マークが浮かんでいます。
結論を言いますと、今回の課題では変わりありません。
しかし、課題の内容によっては、1回1回の処理に入る前に条件を判断するのか、1回1回の処理の後に条件を判断するのかで、
処理結果が異なる場合があります。

その違いについては、第5話で学びます。

さて、同じ課題をDo Until...Loop文、Do...Loop Until文で実現してみましょう。




第2話へ
 第4話へ

004


vc++講義へ
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ

数学研究室に戻る