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

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

Do Until...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 Until 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 Until 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 Until 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 Until i > o
    w = w + i * i * i * i
    i = i + b
  Loop

  Cells(12, 4) = w

End Sub


Do...Loop Until文によるコード例
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 Until 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 Until 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 Until 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 Until i > o

  Cells(12, 4) = w

End Sub

WhileをUntilに変更すると、条件式がi <= oからi > oに変わりました。
i > oは、i <= oの否定です。
理由は、Whileの場合は条件式を満たしている間繰り返し処理しなさいで、Untilの場合は条件式を満たすまで繰り返し処理しなさいだからです。
つまり、Whileの場合は、『i <= o』が成り立っている間は繰り返しなさいであるのに対して、
Untilの場合は『i > o』が成り立ったら繰り返し処理をやめなさいです。
Whileは、条件式が真なら処理を実行しなさいであるのに対して、Untilは条件式が真なら処理をやめなさいなのです。
Whileは、条件式が真である場合続け、Untilは条件式が偽である場合続けなさいです。

Untilの場合でも、今回の課題では前判断と後判断の違いがありませんでした。
WhileでもUntilでもいかなる場合に違いが出てくるのでしょうか。
皆さん、考えてみてください。





第3話へ 第5話へ

004


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

数学研究室に戻る