For Next文

 前節までは、条件分岐の方法を見てきました。これからしばらく、反復処理の方法を見ていきましょう。最初に、For Next文です。このステートメントは、回数を指定して繰り返し処理を行なわせることができます。

For Next文の書式
For 初期化式 To 終値 Step 増分
 処理
Next

For Next文
For Next文

○ プロジェクト

 次のようにプロジェクトを作成してください。実行するとコンソールに結果が表示されます。

プロジェクトの種類 コンソール アプリケーション
プロジェクト名 ForNextTest1

サンプルダウンロード

○ プログラム

 次のようにプログラムを入力してください。

  1. Sub Main()
  2.  '変数の宣言
  3.  Dim i As Integer
  4.  '繰り返し処理
  5.  For i = 0 To 10 Step 2
  6.   'ループカウンターを画面に表示
  7.   Console.WriteLine(i)
  8.  Next
  9.  Console.ReadLine()
  10. End Sub

○ 実行結果

0
2
4
6
8
10

○ 解説

 8行目で変数iが0~10までの間、繰り返し処理を実行することを指定しています。Stepで繰り返し処理ごとにループカウンターを加算する数値を指定します。今回は2と指定しているので、繰り返し処理ごとにループカウンターが2ずつ増加します。10行目で、ループカウンターを画面に表示しています。

 For Next文では、1ずつ増やす場合はStepを省略することができます。また、マイナスの値を設定することでカウントダウンさせることができます。

○ プロジェクト

 次のようにプロジェクトを作成してください。実行するとコンソールに結果が表示されます。

プロジェクトの種類 コンソール アプリケーション
プロジェクト名 ForNextTest2

サンプルダウンロード

○ プログラム

 次のようにプログラムを入力してください。

  1. Sub Main()
  2.  '変数の宣言
  3.  Dim i As Integer
  4.  '繰り返し処理(カウントダウン)
  5.  For i = 10 To 0 Step -1
  6.   'ループカウンターを画面に表示
  7.   Console.WriteLine(i)
  8.  Next
  9.  Console.ReadLine()
  10. End Sub

○ 実行結果

10
9
8
7
6
5
4
3
2
1
0

○ 解説

 8行目で変数iが10~0までの間、繰り返し処理を実行することを指定しています。Stepで-1が指定されているので、ループ処理をするごとにループカウンターが減っていきます。その状態を10行目で表示させています。

 次に、For Next文の中にFor Next文を記述する方法を見てみましょう。この方法はネスト(入れ子)と呼ばれ、外のループ1回につき、中のループを複数回処理させることができます。次のサンプルでは入力した個数の「■」を持つ正方形を描画します。

○ プロジェクト

 次のようにプロジェクトを作成してください。実行するとコンソールに結果が表示されます。

プロジェクトの種類 コンソール アプリケーション
プロジェクト名 ForNextTest3

サンプルダウンロード

○ プログラム

 次のようにプログラムを入力してください。

  1. Sub Main()
  2.  '正方形の辺の個数を入力
  3.  Console.Write("正方形の辺の個数:")
  4.  Dim num As Integer = Console.ReadLine()
  5.  '縦方向のループ
  6.  For i As Integer = 1 To num
  7.   '横方向のループ
  8.   For j As Integer = 1 To num
  9.    '■を表示
  10.    Console.Write("■")
  11.   Next
  12.   '改行
  13.   Console.WriteLine()
  14.  Next
  15.  Console.ReadLine()
  16. End Sub

○ 実行結果

正方形の辺の個数:5
■■■■■
■■■■■
■■■■■
■■■■■
■■■■■

○ 解説

 6行目で変数numにユーザーがキーボードより入力したデータが格納されます。9行目で変数iが0~入力した個数までの間、繰り返し処理を実行することを指定しています。さらにそのループの中で11行目にあるFor Next文が記述されており、変数jが0~入力した個数までの間、繰り返し「■」を横方向に表示します。このループ処理が終わると、16行目で改行を出力し、次の表示が次の行になるようにしています。これで外側のループ処理が終わったので、変数iが1加算されて、再びループ処理が行われることになります。結果として縦にも横にも同じ数の「■」が表示されます。

 配列とFor Next文を組み合わせるとプログラミングしやすくなります。配列のインデックスは0から始まります。配列のすべての要素にアクセスするには0~(配列の要素数-1)までアクセスすることになります。このインデックスにFor Next文のループカウンターを使用することができます。

○ プロジェクト

 次のようにプロジェクトを作成してください。実行するとコンソールに結果が表示されます。

プロジェクトの種類 コンソール アプリケーション
プロジェクト名 ForNextTest4

サンプルダウンロード

○ プログラム

 次のようにプログラムを入力してください。

  1. Sub Main()
  2.  '配列を用意
  3.  Dim fruits As String() = {"みかん", "もも", "なし"}
  4.  '繰り返し処理
  5.  For i As Integer = 0 To fruits.Length - 1
  6.   'フルーツを表示
  7.   Console.WriteLine(fruits(i))
  8.  Next
  9.  Console.ReadLine()
  10. End Sub

○ 実行結果

みかん
もも
なし

○ 解説

 5行目で配列fruitsを初期化しています。8行目で変数iが0~2までの間、繰り返し10行目が実行されます。今回のサンプルの配列の要素は3つあるので、インデックスは0~2となります。その間、繰り返し処理をするために終了条件を「配列名.length -1」までとしています。配列のインデックスをループカウンターで指定することで配列のすべての要素を利用することができます。

前へ   次へ