縄とびを何回とんだか、何人の人がお店に入っていったか、紙の枚数が何枚か、回数や人数など1ずつ増やして数えることはよくあります。数えている途中に、別のことをすると数が分からなくなってしまいます。どうしてでしょうか。どこまで数えたか分からなくなるからですね。つまり、数えるには記憶が必要なのです。
4番のプログラム例をみてみましょう。このプログラムは、Arduinoボード上のLEDを10回点滅させます。
void setup() { pinMode(13, OUTPUT); for(int i=0; i<10; i=i+1) { digitalWrite(13, HIGH); delay(1000); digitalWrite(13, LOW); delay(1000); } } void loop() { }for文のところに注目してください。変数はないでしょうか。「i」がありますね。 これで回数を数えています。
回数を数えるために使う変数のことをカウンタ変数といいます。さきのプログラムだとiがカウンタ変数です。for文の行に注目してみましょう。
for(int i=0; i<10; i=i+1) {一つ目の
int i=0は、繰り返しの前に i に 0 を代入するという意味です。また宣言も、ここでしています。 二つ目の
i<10は、{と}で囲まれた部分を実行する条件です。i<10のとき、つまりiが10未満の時に実行します。 三つ目の
i=i+1は {と}で囲まれた部分を実行した後にする計算です。いまのiの値に1を足してからiに代入しているので、iが1増えます。
次のプログラムを実行してみましょう。
Arduino IDEのシリアルモニタ(右上のボタン)を開くと
0 1 2 3 4 5 6 7 8 9が表示されます(Arduinoからパソコンへ文字を送っているのをシリアルモニタで見る)。まずiの値が1ずつ増えていることがわかります。
つぎのプログラムでは0, 10, 20, ..., 90と数えて10回繰り返します。
for(int i=0; i<100; i=i+10) { Serial.println(i); }つぎのプログラムでは10, 9, 8, 7, ..., 1 と数えて10回繰り返します。
for(int i=10; i>0; i=i-1) { Serial.println(i); }つぎのプログラムでは2, 4, 6, 8, 10, ..., 20と数えて10回繰り返します。
for(int i=2; i<=20; i=i+2) { Serial.println(i); }