第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次元ループに挑戦しましょう。
それらによって、実行画面が
となるようにプログラミングして下さい。
VC++講義第1部へ
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
数学研究室に戻る