5.制御構造
 2)繰返し構造(For・・・Next、While・・・End While、Do While・・・Loop、Do Until・・・Loop、Do・・・Loop While、Do・・・Loop Until)
書式

フローチャート

前判断

For カウンタ=初期値 To 最終値 Step カウンタの増減幅
  ループさせるプログラム
Next カウンタ

While 繰り返す条件
  ループさせるプログラム
End While

Do While 繰り返す条件
 ループさせるプログラム
Loop

Do Until 繰り返す条件
 ループさせるプログラム
Loop

 条件によっては、「処理(ループさせるプログラム)」が一度も
実行されない。

後判断
Do 
 ループさせるプログラム
Loop While 繰り返す条件

Do 
 ループさせるプログラム
Loop Until 繰り返す条件

 必ず一回は、「処理(ループさせるプログラム)」が実行される。


条件(条件式)については、ここを参照してください。

   ①For・・・・・Nextの考え方
    Dim i As Integer
    For i=1 To 10 Step 1
      ループさせるプログラム
    Next i

     iが1から10になるまで1づつカウントアップしながらループするので10回ループする。
     カウントの増量が1のときは、「Step 1」は、省略できる。

    Dim i As Integer
    For i=10 To 1 Step -1
      ループさせるプログラム
    Next i

     iが10から1になるまで1づつカウントダウンしながらループするので10回ループする。
     カウントの増量が-1のときは、「Step -1」は、省略できない。

  ②While・・・・・End Whileの考え方
    カウンタの初期値とカウンタ機能はないので自分でプログラムする。
    Dim i As Integer
    i=1           'カウンタの初期値
    While i<=10
     ループさせるプログラム
     i=i+1        'カウントアップのプログラム
   End While

   iが1から10になるまで1づつカウントアップしながらループするので10回ループする。

    Dim i As Integer
    i=10           'カウンタの初期値
    While i>=1
     ループさせるプログラム
     i=i-1        'カウントダウンのプログラム
   End While

   iが10から1になるまで1づつカウントダウンしながらループするので10回ループする。

   ③Do While・・・・・Loopの考え方
    カウンタの初期値とカウンタ機能はないので自分でプログラムする。
    Dim i As Integer
    i=1           'カウンタの初期値
   Do  While i<=10
     ループさせるプログラム
     i=i+1        'カウントアップのプログラム
   Loop

   iが1から10になるまで1づつカウントアップしながらループするので10回ループする。

   ④Do Until・・・・・Loopの考え方
    カウンタの初期値とカウンタ機能はないので自分でプログラムする。
    Untilは、Whileの逆の条件で動作するようになる。
    Dim i As Integer
    i=1           'カウンタの初期値
   Do Until i>10
     ループさせるプログラム
     i=i+1        'カウントアップのプログラム
   Loop

   iが1から10になるまで1づつカウントアップしながらループするので10回ループする。

   ⑤Do・・・・・Loop Whileの考え方
    カウンタの初期値とカウンタ機能はないので自分でプログラムする。
    Dim i As Integer
    i=1           'カウンタの初期値
   Do 
     ループさせるプログラム
     i=i+1        'カウントアップのプログラム
   Loop While i<=10

   iが1から10になるまで1づつカウントアップしながらループするので10回ループする。

   ⑥Dol・・・・・Loop Untilの考え方
    カウンタの初期値とカウンタ機能はないので自分でプログラムする。
    Untilは、Whileの逆の条件で動作するようになる。
    Dim i As Integer
    i=1           'カウンタの初期値
   Do 
     ループさせるプログラム
     i=i+1        'カウントアップのプログラム
   Loop Until i>10

   ⑦<練習問題>
     1+2+3+4+5+6+7+8+9+10=55になる計算を繰返しを使って処理しなさい。
   
     ボタンのオブジェクト名
      For Next → Button1
      While End While → Button2
      Do While Loop → Button3
      Do Until Loop → Button4
      Do Loop While → Button5
      Do Loop Until → Button6

      For Nextの答え

       Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim i, j As Integer
        j = 1
        For i = 2 To 10 Step 1
         j = j + i         'j+iの演算結果を変数jに戻す。(累算)
        Next i
        MsgBox("1+2+3+4+5+6+7+8+9+10=" & j)
       End Sub

      一回ごとのループの処理の流れは、以下のようになる。
        j=1、i=2のとき  j(=1)+i(=2)   → j(=3)
           i=3のとき  j(=3)+i(=3)   → j(=6)
           i=4のとき  j(=6)+i(=4)   → j(=10)
           i=5のとき  j(=10)+i(=5)  → j(=15)
           i=6のとき  j(=15)+i(=6)  → j(=21)
           i=7のとき  j(=21)+i(=7)  → j(=28)
           i=8のとき  j(=28)+i(=8)  → j(=36)
           i=9のとき  j(=36)+i(=9)  → j(=45)
           i=10のとき j(=45)+i(=10) → j(=55)

    <課題>For Next以外の繰返しの命令で1+2+3+4+5+6+7+8+9+10=55の計算が
         できるようにしなさい。

<答えです。できるだけ見ないようにがんばってみましょう。>
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim i, j As Integer
j = 1
For i = 2 To 10 Step 1
j = j + i 'j+iの演算結果を変数jに戻す。(累算)
Next i
MsgBox("1+2+3+4+5+6+7+8+9+10=" & j)
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim i, j As Integer
j = 1
i = 2
While i <= 10
j = j + i 'j+iの演算結果を変数jに戻す。(累算)
i = i + 1
End While
MsgBox("1+2+3+4+5+6+7+8+9+10=" & j)
End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Dim i, j As Integer
j = 1
i = 2
Do While i <= 10
j = j + i 'j+iの演算結果を変数jに戻す。(累算)
i = i + 1
Loop
MsgBox("1+2+3+4+5+6+7+8+9+10=" & j)
End Sub

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
Dim i, j As Integer
j = 1
i = 2
Do Until i > 10
j = j + i 'j+iの演算結果を変数jに戻す。(累算)
i = i + 1
Loop
MsgBox("1+2+3+4+5+6+7+8+9+10=" & j)
End Sub

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
Dim i, j As Integer
j = 1
i = 2
Do
j = j + i 'j+iの演算結果を変数jに戻す。(累算)
i = i + 1
Loop While i <= 10
MsgBox("1+2+3+4+5+6+7+8+9+10=" & j)
End Sub

Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
Dim i, j As Integer
j = 1
i = 2
Do
j = j + i 'j+iの演算結果を変数jに戻す。(累算)
i = i + 1
Loop Until i > 10
MsgBox("1+2+3+4+5+6+7+8+9+10=" & j)
End Sub