For Next を使えば、繰り返し処理を簡単に記述できます。同じ処理のプログラムを何度も書かずに済みます。
最初に、キーボードから整数値を3回入力して、入力値の合計を計算する、良くないプログラムを紹介します。
最初にsum変数に0を代入しておき、キーボードから入力した値を、sum変数に3回加えて、合計を求めます。たとえば、キーボードから順に、5、12、3と入力したら、
1回目: 5 = 0 + 5(sum = sum + 1番目の入力値)
2回目 :17 = 5 + 12 (sum = sum + 2番目の入力値)
3回目 :20 = 17 + 3 (sum = sum + 3番目の入力値)
と計算します。
' 変数の宣言
Dim inStr As String
Dim inNum As Integer
Dim sum As Integer = 0
Console.WriteLine("*** 合計値を求める ***")
Console.WriteLine() ' 改行
' キーボードから3回入力した数値の合計を求める
' 【1回めの入力】
Console.WriteLine("1番目の数字を入力して")
Console.WriteLine("Enterキーを押してください")
' キーボードから入力
inStr = Console.ReadLine()
' 文字列を整数に変換
inNum = Integer.Parse(inStr)
' 前回までの合計値に加える
sum = sum + inNum
' 【2回めの入力】
Console.WriteLine("2番目の数字を入力して")
Console.WriteLine("Enterキーを押してください")
inStr = Console.ReadLine()
inNum = Integer.Parse(inStr)
sum = sum + inNum
' 【3回めの入力】
Console.WriteLine("3番目の数字を入力して")
Console.WriteLine("Enterキーを押してください")
inStr = Console.ReadLine()
inNum = Integer.Parse(inStr)
sum = sum + inNum
' 合計を表示
Console.WriteLine() ' 改行
Console.WriteLine("入力した数の合計は")
Console.WriteLine(sum)
Console.WriteLine("です")
良くない点は、次のように同じプログラムを3回記述しているところです。
Console.WriteLine("1番目の数字を入力して")
Console.WriteLine("Enterキーを押してください")
' キーボードから入力
inStr = Console.ReadLine()
' 文字列を整数に変換
inNum = Integer.Parse(inStr)
' 前回までの合計値に加える
sum = sum + inNum
もし繰り返し回数が100回だと、100回同じ内容を書くことになり、たいへん非効率です。そこで登場するのが、For Next 制御文です。For Next を使えば、何度も同じプログラムを記述する必要はなく、繰り返し処理を1回の記述で済むようになります。
For Next の書式は次のようになります。開始値は繰り返しを始める整数で、今回の例では1、終了値は繰り返しを終える整数で、今回の例では3になります。
For 変数 As Integer = 開始値 To 終了値
..........
.......
..........
Next
そこで、For Next を使って、キーボードから整数値を3回入力して、入力値の合計を計算するプログラムを修正します。
Module Module1 Sub Main() ' 変数の宣言 Dim inStr As String Dim inNum As Integer Dim sum As Integer = 0 Console.WriteLine("*** 合計値を求める ***") Console.WriteLine() ' 改行 ' キーボードから3回数値を入力して、その合計を求める For i As Integer = 1 To 3 Console.WriteLine(i & "番目の数字を入力して") Console.WriteLine("Enterキーを押してください") ' キーボードから入力 inStr = Console.ReadLine() ' 文字列を整数に変換 inNum = Integer.Parse(inStr) ' 入力値を前回までの合計値に加える sum = sum + inNum Next ' 合計を表示 Console.WriteLine() ' 改行 Console.WriteLine("入力した数の合計は") Console.WriteLine(sum) Console.WriteLine("です") End Sub End Module
For Next を使ったことで、プログラム作成効率が良くなり、とても見やすくなりました。
次回は、繰り返しの変数を1 3 5 7... や、2 5 8 11 ... のように制御できる For ... Next ... Step について勉強します。
| ◆ VB 文法 目次へ◆ |
|---|
| 文字列を表示する |
| Dim 変数の宣言 |
| = 代入演算子 |
| キーボード入力 |
| & 文字列連結演算子 |
| 3つ以上の文字列を連結 |
| 文字列を改行する |
| + 加算演算子 |
| - 減算演算子 |
| * 乗算演算子 |
| / 除算演算子 |
| ¥ 整数除算演算子 |
| Mod 整数剰余演算子 |
| ^ べき乗(累乗)演算子 |
| += -= *= /= |
| \= ^= &= |
| ◆ VB 文法 目次へ◆ |
|---|
| Day() |
| Fix() |
| Format() 数値編 |
| Hour() |
| Int() |
| IsNumeric() |
| LTrim() |
| Minute() |
| Month() |
| RTrim() |
| Second() |
| Space() |
| Trim() |
| Year() |
| ◆ VB 文法 目次へ◆ |
|---|
| Math.Absメソッド |
| Math.Ceilingメソッド |
| Math.Floorメソッド |
| Math.Maxメソッド |
| Math.Minメソッド |
| Math.Roundメソッド |
| Math.Signメソッド |
| Math.Truncateメソッド |