第6講 For文以外の繰り返し処理

第4話 Do...Loop While文

Do...Loop While文を使えば、前話のプログラミングは次のように改良できます。
Public Class Form1

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     '変数の宣言
     Dim a As Integer, b As Integer, c As Integer, i As Integer, w As Integer

     '値の取得
     a = TextBox1.Text
     b = TextBox2.Text
     c = TextBox3.Text

     '1乗の和の計算
     w = 0
     i = a
     Do
       w = w + i
       i = i + c
     Loop While w + i <= b
     TextBox4.Text = w.ToString

     '2乗の和の計算
     w = 0
     i = a
     Do
       w = w + i * i
       i = i + c
     Loop While w + i * i <= b
     TextBox5.Text = w.ToString

     '3乗の和の計算
     w = 0
     i = a
     Do
       w = w + i * i * i
       i = i + c
     Loop While w + i * i * i <= b
     TextBox6.Text = w.ToString

     '4乗の和の計算
     w = 0
     i = a
     Do
       w = w + i * i * i * i
       i = i + c
     Loop While w + i * i * i * i <= b
     TextBox7.Text = w.ToString

   End Sub
End Class

では皆さん、このDo...Loop While文をつかって、はじめの値から終わりの値以下まで足していくプログラムはどうなるでしょうか。
つまり、1乗の和を例にとれば、はじめの値を2、終わりの値を10、変化の幅を2とするとき、
2+4+6+8+9を計算させるのはどうしたらよいでしょうか。
実行結果例
入門
解答例は30行下。






























解答例
Public Class Form1

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     '変数の宣言
     Dim a As Integer, b As Integer, c As Integer, i As Integer, w As Integer

     '値の取得
     a = TextBox1.Text
     b = TextBox2.Text
     c = TextBox3.Text

     '1乗の和の計算
     w = 0
     i = a
     Do
       w = w + i
       i = i + c
     Loop While i <= b
     TextBox4.Text = w.ToString

     '2乗の和の計算
     w = 0
     i = a
     Do
       w = w + i * i
       i = i + c
     Loop While i <= b
     TextBox5.Text = w.ToString

     '3乗の和の計算
     w = 0
     i = a
     Do
       w = w + i * i * i
       i = i + c
     Loop While i <= b
     TextBox6.Text = w.ToString

     '4乗の和の計算
     w = 0
     i = a
     Do
       w = w + i * i * i * i
       i = i + c
     Loop While i <= b
     TextBox7.Text = w.ToString

   End Sub
End Class

結局While文でもDo...Loop While文でも、
工夫すればはじめの値から終わりの値以下まで加えていく計算も、
はじめの値から合計の上限値を超えない範囲で加えていく計算も、
実現できます。
ただ、問題によっては前判定であるWhile文よりDo...Loop While文の方が向いている場合もあるということですし、
その逆も言えます。
ですから、問題に応じて使い分ければよいことになります。

では、while文による2次元ループ、do...while文による2次元ループに挑戦しましょう。
それらによって、実行画面が
入門
となるようにプログラミングして下さい。


第3話へ 第5話へ

006

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

数学研究室に戻る