for文(ふぉーぶん) |
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
for文
「反復」、つまり、処理の繰り返しをする制御文。
指定した回数分、ブロック内の処理を実行する。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
 |
|
 |
|
 |
|
for文で使う命令
for |
実行する条件(実行回数)を指定する |
break |
処理を打ち切る |
continue |
命令以降の処理をキャンセルして
ループを続行する |
|
|
for-each
(拡張for文) |
配列やコレクションを操作するのに
便利なfor文拡張 |
必要に応じて組み合わせて使う |
|
|
 |
|
 |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
for文は、for単独でも使えるが、実際には
break、continueの、2つの命令文を組み合わせて使う。
もちろん、if文など他の制御文とも合わせて使える。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
forはfor文必須の命令。
ここにループし続けるための
条件式と実行する処理を書く。
forは日本語にすると
「~の間」の意味だよ。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
for文の書き方
forに続けて()括弧、{}括弧を書く。
「( )」に条件式を書いて
「{ }」のブロックの中にtrueの時に実行する処理を書く。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
条件式には
・カウンター変数の宣言・初期値
・実行する回数(条件)
・カウンターの一回の増減値
を書く必要がある。
以下、条件式の書き方を順番に見ていく。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
|
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
まず、「カウンター変数の宣言と初期化」をする。
処理を繰り返すには、
「今、何回実行したか」のカウントを保持する変数が必要。
そのために、カウンター用の一時変数「i」を宣言して、「0」で初期化した。
この初期値がそのまま、カウンターの開始カウントになる。
通常はint型変数で宣言して、0で初期化する。
(これ以降はカウンター用の一時変数は、カウンター変数と呼びます。) |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
 |
|
 |
|
カウンター変数の宣言と初期化
カウンター変数は、int型、初期値は0 |
通常int型で、初期値は0から始める。
初期値がそのままカウンターの開始カウントになる。
この場合、0からの開始になる。
必要に応じて開始カウントを変更できるが、
当面は0にすること。 |
|
|
カウンター変数名は通常1文字 |
一時的に使われる変数のため、通常は1文字。
特に決まりはないが、以下のアルファベットがよく使われる。
a,i,f,j,kなど
m,n,x,yなど(2次元配列の場合) |
|
|
|
文末はセミコロン |
宣言・初期化の終わりには「;」(セミコロン)を書く。 |
|
|
|
|
|
 |
|
 |
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
|
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
次に、処理の「実行回数の指定」をする。
この条件がtrueの間、処理は実行され続ける。
今回の場合なら、
「カウンター i が10未満」の間、実行される。
条件は、比較演算子を使って
「以上」「以下」「未満」「超」のような判定ができる。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
条件には、当面は「未満」だけを使うこと。
「カウンタ変数 < 実行回数」を公式のようにする。
ほとんどの処理はこれで間に合う。
慣れるまでは、混乱して余計なエラーを引き起こすため。
実行回数だけ変えるようにすること。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
 |
|
 |
|
実行回数の指定
条件は、比較演算子を使って書ける |
「以上」「以下」「未満」「超」などを使って書ける。
当面は「 < (未満)」だけを使うこと。
「カウンタ変数 < 実行回数」 |
|
|
文末はセミコロン |
宣言・初期化の終わりには「;」(セミコロン)を書く。 |
|
|
|
|
|
 |
|
 |
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
|
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
最後に、カウンターの「増減値」を指定する。
ループ一回につき、カウントをいくつ上げるか決める。
通常は1づつ上げる。
例の「i++」は、「i = i + 1」をインクリメント演算子で簡略化したもの。
この場合、iのカウントが1づつ増える。
このままでほとんどの処理は大丈夫なので、当面はこのまま丸暗記で使うこと。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
 |
|
 |
|
カウンターの増減値
増減値は通常「カウンター変数++」 |
増減値は通常、インクリメント演算子を使って
「カウンター変数++」で1づつ増やす。
ほとんどの処理はこれで間に合うので、
当面はこれだけ使うこと。
実際は、「i = i + 99」などのように自由に書くことも可能。
この場合、カウントが99づつ増加する。
加算だけでなく、減算などの計算も可能。
デクリメント演算子を使って「i--」のようにすれば、
カウントが1づつ減少する。 |
|
|
セミコロンは不要 |
文末のセミコロンは不要。
書くとエラーになる。 |
|
|
|
|
|
 |
|
 |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
あとはブロックに実行したい処理を書いて実行する。
回数まで勝手にカウントして、ぐるぐる回る。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
for文の実行の流れ
条件式に従ってブロックの処理を繰り返す。
カウントが上がるのが、
処理の終わった後だということに注意。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
forの変数の有効範囲
基本的には、変数の有効範囲と同じ。
ブロック内で宣言された変数は
ループ毎に消えて初期化されるので注意。
値を消したくない変数は
ブロック外のforより上に書いておくこと。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
カウンター変数の有効範囲も注意。
カウンター用の変数はブロック内でだけ有効。
外からは使えない。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
普通の変数と同様に、カウンター変数は、
ブロックの中で値を書き換えることができる。
自分でカウントを増やしたり減らしたりして、
前のループに戻したり先に進めたりもできる。
でも、間違えるとループがおかしくなるので、
当面は変更しないで読み取り専用で使うこと。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
カウンターの0での初期化
実は、プログラムは0から始める処理が多い。
それも一個づつ順番に最大値まで処理することが圧倒的に多い。
その時カウンター変数を使って0から番号順に処理をするのに便利。
i = 0;i < 実行回数;i++
(初期値0で「未満」の条件)
まずこの形を覚えておくこと。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
 |
|
 |
|
for文の命令文
for |
実行する条件(実行回数)を指定する |
break |
処理を打ち切る |
continue |
命令以降の処理をキャンセルして
ループを続行する |
|
|
for-each
(拡張for文) |
配列やコレクションを操作するのに
便利なfor文拡張 |
必要に応じて組み合わせて使う |
|
|
 |
|
 |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
for文とbreak文とcontinue文を組み合わせて使う
for文はこの2つを合わせて使うことで
いろいろな複雑な処理ができる。
break文やcontinue文はfor文やwhile文にも使える。
使い方や動作を覚えておくこと。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
 |
|
 |
|
for文のまとめ(処理) |
|
for文の処理の内容 |
指定した回数、処理を繰り返す制御文(反復) |
break文を使う事でループを打ち切ることができる |
continue文を使う事で中断して特定ループをスキップできる |
カウンター変数で連番を利用した処理ができる |
カウンター変数で特定のループにだけ処理をできる |
|
|
|
|
 |
|
 |
|
|
 |
|
 |
|
for文のまとめ(命令) |
|
for |
指定回数処理を実行する命令 |
カウンター用の変数の宣言と初期値を決める |
ループする回数を条件式で決める |
カウンターの1回の増減値を決める |
カウンターでループの継続を判定する |
for文必須の命令 |
|
break |
ループを「打ち切る」命令 |
forブロックの中に書く |
自分のいるforブロックのループを終了する |
|
continue |
ループをその場で中断して「続ける」命令 |
forブロックの中に書く |
自分のいるforブロックのループを中断して戻る |
|
|
for-each |
配列やコレクションを操作するのに便利なfor文拡張 |
|
|
|
|
|
 |
|
 |
|
|