ループは同じことを繰り返すということ。
プログラミングでも同じことを繰り返させる処理を行うことができる。
ここでは「for」を使ったループについて見ていく。
他にもwhileを使ったループとかあるけど今回は「for」。
forループの使い方
forの構文はこんな感じ。
文字で書いてみたけどなんのこっちゃ分からん。
だから実際やってみよう。
※パッケージとクラス、メインメソッドはここでは省略。
それぞれの設定の仕方はプログラミング初心者の記録vol.2 Eclipseの立ち上げと設定準備を参照。
System.out.println(“A=”+A);
}
これを実行すると…
A=2
A=3
A=4
A=5
A=6
A=7
A=8
A=9
A=10
となる。
ではforの中身を一つ一つ見ていこう。
まずfor(int A = 1; A<=10; A++)の「int A = 1」から。
「int 〇 = △」の形はこれまで何度も見てきてるやつだー。
「int」は整数を表す変数の型で、変数の型の後には変数がくる。
変数は自分が好きな文字を設定することができる。
この場合は「A」が変数で、「int A = 1」というのは「変数Aには1が入っているよ」という宣言。
この「int A = 1」というのがfor構文の中の「初期値」に該当する。
「int A = 2」を初期値にしたかったら「int A = 2」と書けばよい。
自由に設定していいのよ。
とりあえず、ループ処理を始めるときの「始めの値を設定するところ」ということ。
「初期値」を書き終わったら「;(セミコロン)」を忘れずに書くこと。
「;」で挟まれた真ん中の部分の「A<=10」は、ループ処理を繰り返し行う条件を書くところ。
もしここの条件に当てはまらなかったら、ループ処理は行われない。
今回の場合でいうと、Aが10以下の場合(10を含む)にfor構文の{}内のプログラムが行われる。
最後は「A++」の部分。
これは、for構文の最後に行われるプログラムということ。
for(int A = 1; A<=10; A++) {
System.out.println(“A=”+A);
}
とあるが、()内の真ん中部分の「繰り返し行われる条件」に合致し、{}内の処理が行われた後に「A++」の部分が処理される。
今回の場合だと、Aの値がA<=10という条件に合致していれば{}内の処理が行われ、最後にA++が行われるということ。
この場合、最後に「A++」ということだから、A=A+1がfor構文の最後に処理される。
この処理はループが起きるたびに行われる処理で、一回だけ行われるものではない。
()内の最後に「;」はいらないよ。
for(初期値;条件;最後の処理){}の形ね。
初期値と条件の境目、条件と最後の処理の境目の部分だけだよ。
まず、int A=1とあることからAは「1」
↓
条件はA<=10(Aは10以下)という条件に合致している
↓
{}内の「System.out.println(“A=”+A);」が処理され、「A=1」と画面に表示される
↓
構文の最後に行われるプログラム「A++(A=A+1)」が処理され、Aに1が足されたものが新たな「A」の値となる。
↓
Aの値「1」に「1」足されたことによって(A=A+1)Aが「2」というのが新たな数字となる
↓
この「2」が条件に合うかどうかを処理(for構文の真ん中の部分)
↓
Aが「2」というのは「A<=10」という条件に合う
↓
forの{}内のプログラムが処理され、「A=2」が画面に表示される
↓
最後に「A++」が処理される
↓
Aは「2」だから、それに「1」が足される⇒Aは「3」となる
↓
Aの値は「3」となって条件に合うかどうか確認処理がされる
↓
(省略)
↓
Aの値は「11」となる
↓
条件のA<=10に当てはまらない
↓
ループ処理は行われない(終了)
Aが11だと「A<=10という」条件に当てはまらない。
だからAが11という状態では{}内のプログラムは行われず「A=11」というのは画面に表示はされないよ。
もし条件の部分を「A<=11」にしてたら「A=11」まで表示されるということ。
条件に合わない時点でfor構文の処理は終了したということになる。
デクリメントを使ったforループ
上で使ったプログラムの形をちょっと変えてみた。
といっても言うほど複雑じゃないけど…。
for(int A = 10; A>0; A–) {
System.out.println(“A=”+A);
}
これを実行すると…
A=9
A=8
A=7
A=6
A=5
A=4
A=3
A=2
A=1
となる。
理屈は同じこと。
「int A=10」はループ処理がされる条件の「A>0(Aは0より大きい)」を満たしている
↓
{}内の「System.out.println(“A=”+A);」が処理され、A=とAの値(A=10)が表示される
↓
最後に「A–(A=A-1)」が処理され、Aの値から1が引かれた「9」が新たなAの値となる
↓
条件に合うかどうかを確認処理
↓
(省略)
↓
Aが「0」が新たな値となる
↓
Aが「0」というのは「A>0」を満たしていないから{}内のプログラムは行われず、「A=0」は表示されない
※もし「A>=0」なら「0」も含まれるから「A=0」も表示される。
「A–」や「A++」をループの最後に行う処理としているから、ループ処理されるたびに値が変わっていく。
構文を忘れずに。
まとめ
ループのプログラムも実は複数あって、forはそのうちの一つ。
ループ処理を行うには、基本的に初期値の設定とループが行われる条件、最後に行う処理の3つを書くけどfor構文はまとめて記述できるから見た目もスッキリする。
今回は本当に簡単なやり方だから、もうちょっと複雑にしただけで混乱する未来しか見えないけど…。
次は別のループ「while」についてかな。
コメント