第3講 繰り返し処理for文
第1話 For文とは?
1+2+3+4+5+6+7+8+9+10
を計算させるには、
Module Module1

  Sub Main() '私は社長だ。
    Dim a As Integer '整数を入れる箱を用意
    a = 0 '初期化
    '以下計算
    a = a + 1
    a = a + 2
    a = a + 3
    a = a + 4
    a = a + 2
    a = a + 5
    a = a + 6
    a = a + 7
    a = a + 8
    a = a + 9
    a = a + 10
    '以上計算
    Console.WriteLine("1+2+3+4+5+6+7+8+9+10={0:d}",a)
  End Sub

End Module
実行結果
1+2+3+4+5+6+7+8+9+10=55
で良いわけですが、余りに芸のないプログラミングですね。
    a = a + 1
    a = a + 2
    a = a + 3
    a = a + 4
    a = a + 2
    a = a + 5
    a = a + 6
    a = a + 7
    a = a + 8
    a = a + 9
    a = a + 10
は10行にわたって同じようなことを繰り返します。
同様なことを繰り返して処理することを繰り返し処理といいます。
その繰り返し処理の一つにfor文があります。
for文を使ってこの芸のないコードを書き直すと、
Module Module1

  Sub Main() '私は社長だ。
    Dim a, i As Integer 'aは整数を入れる箱を用意 iはFor文の制御変数
    a = 0 '初期化
    '以下計算
    For i = 1 To 10
      a = a + i
    Next
    '以上計算
    Console.WriteLine("1+2+3+4+5+6+7+8+9+10={0:d}", a)
  End Sub

End Module

となります。

iを1からはじめてひとつずつ増やしながらiが10になるまで
      a = a + i
を繰り返しなさいという命令になります。
    For i = 1 To 10
が1から始め10までを意味します。
    Next
は次を意味します。
ですから、iは1から始まってひとつずつ増えて10まで変化します。
    For i = 1 To 10
      ・・・
      ・・・
      ・・・
    Next
こういう単位をブロックといいます。
ブロックの中が繰り返し行われるのが、
For文です。
    023
繰り返し処理のことをループ処理ともいいます。
10回回転する=10回ループする
からです。

この処理が優れているのは、
For i = 1 To 10 をFor i = 1 To
10000 と変更するだけで、
1から10000までの和を求めるプログラムに変更できることです。
Module Module1

  Sub Main() '私は社長だ。
    Dim a, i As Integer 'aは整数を入れる箱を用意 iはFor文の制御変数
    a = 0 '初期化
    '以下計算
    For i = 1 To 10
      a = a + i
    Next
    '以上計算
    Console.WriteLine("1から10000までの和={0:d}", a)
  End Sub

End Module
実行結果
1から10000までの和=50005000

どうです。急に面白くなったのではないでしょうか。
ちょっと変えただけで
1+2+3+・・・+9999+10000
が計算できるようになったのです。しかも、一瞬です。


尚、
    For i = 1 To 10
      ・・・
      ・・・
      ・・・
    Next
のiを制御変数といいます。

尚、
      a = a + i

      a += i
と書くことが出来ます。
BASICの時代にはこのような簡略表現はありませんでしたが、
VBになってから、C言語のような簡略表現が出来るようになりました。
簡略表現の例を書いておきましょう。
a -= i : a = a - i
a *= i : a = a * i
a /= i : a = a / i

キーボードには×と÷はありませんので、
プログラム言語では*と/でそれぞれ代用します。

iをひとつずつ増やしたいときは、
    For i = 1 To 10
      ・・・
      ・・・
      ・・・
    Next
ですが、2つずつ増やす方法はあるでしょうか。
あります。
    For i = 1 To 10 Step 2
      ・・・
      ・・・
      ・・・
    Next
とすれば良いのです。
同様に、ひとつずつ減らしたいのであれば、
    For i = 10 To 1 Step -1
      ・・・
      ・・・
      ・・・
    Next

例えば、
    For i = 1 To 10 Step 4
      ・・・
      ・・・
      ・・・
    Next
の場合にはiは
1,5,9
の値をとります。
i = 1 To 10 はiを1から10の範囲内で変化させなさいという意味ですから、
iが13の値をとることはありません。


では
@ 2+3+4+・・・+99
A 3+5+7+・・・+101
についてプログラミングしてみましょう。


第2講第8話へ 第2話へ
 
002

初心者のための excel 2016 マクロ VBA 入門講義 基礎から応用まで
vc++ c言語 c++ 入門 初心者 基礎から応用まで
eclipse c++ 入門
魔方陣 数独で学ぶ VBA 入門

数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
本サイトトップへ