Javaの基礎文法 for文(3-4)

記事上広告

Javaの代表的な反復処理にはfor文とwhile文があります。
反復処理はループ処理とも表現されます。

今回はループ処理の一つであるforの文法や特徴について解説します。

反復処理はプログラム(計画)を組むときに同じような処理が繰り返されるときに利用します。

forもwhileも基本的に条件を元に繰り返し(以下、ループ)を行います。

forの文法

forはwhileと違い条件を作る際には、カウンター(カウンタ変数)と呼ばれる変数と組み合わせます。その条件に合致する(true)の時にループ処理が行われます

カウンターは特別な変数ではなく、変数内部の数値をカウントアップやカウントダウンさせる為、カウンターと名前を付けているだけです。
※変数はカウントアップやカウントダウンする変数でなくてもforは利用できます。

変数をカウントアップもしくはダウンさせるために、初期化の式で変数を初期化(および作成)し、増減式で変数内のデータを増減させます。

処理はforブロックである{}内に記述します。
ブロックを記述しない方法もあり、その際は1行のみがforの適用範囲になります。

forの文法
(ブロック記述)
for(初期化の式 ; 条件 ; 増減式 ){

繰り返したい処理 ;

}

記述例 for(int i = 0; i < 10; i++){

System.out.println(i + “を表示”);

}

forの文法 for(初期化の式 ; 条件 ; 増減式) 繰り返したい処理 ;
記述例 for(int i = 0; i < 10; i++)

System.out.println(i + “を表示”);

記述例ではiのデータを10回表示させる処理になっています。

forの動作の流れ

forはループ処理を行う為に複数の部品を利用します。また、動作の仕方も少し特殊です。

for文法の詳細

  1. 初期化の式
  2. 条件
  3. 増減式

上記の説明の重複になりますが、この3つを利用して変数をカウント(アップおよびダウン)していくのがforの基本です。
※あくまで基本ですので、複雑なプログラムになるとこの限りではありません

それぞれは以下のような役割を持っています。

部品の名称 役割
初期化の式 変数を初期化する(定義も同時に行える)
条件 繰り返しを行う条件を設定する
増減式 変数内のデータを増減させる

forの動作詳細

以下はforを参考プログラムとforの構文の各部品に番号を振った図です。

※番号は動作の順序ではありません。

動作順序 動作 記述例での動き
①初期化の式を実行する 変数iを宣言し、0で初期化される
②条件を確認する
trueであれば④を実行
falseであればforは終了
条件はi < 3
iは0のため、trueとなり④を実行
④繰り返す処理を実行する System.out.println()で表示処理が実行される
iは0のため、表示は”0を表示”となる
③増減式を実行する iがインクリメントされ1となる
②条件を確認する
trueであれば④を実行
falseであればforは終了
条件はi < 3
iは1のため、trueとなり④を実行
④繰り返す処理を実行する System.out.println()で表示処理が実行される
iは1のため、表示は”1を表示”となる
③増減式を実行する iがインクリメントされ2となる
②条件を確認する
trueであれば④を実行
falseであればforは終了
条件はi < 3
iは2のため、trueとなり④を実行
④繰り返す処理を実行する System.out.println()で表示処理が実行される
iは1のため、表示は”2を表示”となる
10 ③増減式を実行する iがインクリメントされ3となる
11 ②条件を確認する
trueであれば④を実行
falseであればforは終了
条件はi < 3
iは3のため、falseとなりforは終了となる

下の図解の番号は上の表と対応しています

まとめると以下のようになります。

初期化の式条件→処理→増減式条件→処理→増減式条件

初期化の式はforで一回のみ実行されます。
次に、条件にあてはまれば処理を行った後に増減式を実行します。
そして、また条件を確認して[処理と増減式]を行うかどうかを決定する、といった手順を踏んでループ処理を行います。

for文 サンプルプログラム

以下のプログラムを「Number16.java」という名前でworkフォルダ内に保存します。
保存が完了したら、コマンドプロンプトを起動し、コンパイルおよび実行を行ってみましょう。

実行例

c:\work>javac Number16.java

C:\work>java Number16
6×1=6
6×2=12
6×3=18
6×4=24
6×5=30
6×6=36
6×7=42
6×8=48
6×9=54

※実行例はコンパイルから実行までの例を表示しています。

Number16.javaの補足説明

以下は「Number16.java」のfor文

for(int i = 1; i < 10; i++){

System.out.println(6 + “x” + i + “=” + (i * 6));

}

初期化の式で変数iを1で初期化します。

次に、条件を確認して「i(1) < 10」となる為、繰り返しの処理が行われます。

以下は表示処理の部分の詳細です。(表示をクリックすると詳細説明が表示されます)

詳細説明
iは1となっており、iを1に置き換えると「6 + “x” + 1 + “=” + (1 * 6)」となります。
まず、掛け算から先に行われ、以下のような結果になります。
「6 + “x” + 1 + “=” + (1 * 6)」→「6 + “x” + 1 + “=” + 6」
次に、残りは+演算子しかない為、左から実行され文字列連結が行われます。
“6x” + 1 + “=” + 6」→「“6×1”+ “=” + 6」
さらに+演算子で文字列連結が行われます。
“6×1”+ “=” + 6」→「“6×1=” + 6」
最後も+演算子で文字列連結が行われます。
“6×1=” + 6」→「“6×1=6”

繰り返す処理が終わった後、増減式で「iがインクリメントされ2」に増えます。

再度、条件を確認して「i(2) < 10」となり、繰り返しの処理が行われます。

繰り返す処理→増減式→条件…という順番でiが10になるまでループが行われます。
(増減式でiが10まで増え、条件が「i(10) < 10」になった段階でfalseとなりループ終了)

for文 復習問題

forは○処理に利用される構文である。○に入る語句を選んでください。
解答群
分岐
反復
順次
逐次
forの増減式に記述する演算として適切なものを選んでください。
解答群
インクリメント演算
関係演算
算術演算
論理演算
forの条件に記述する演算として適切なものを選んでください。
解答群
インクリメント演算
関係演算
算術演算
デクリメント演算
数字を0から10まで表示したい。次のプログラムの□に入る記述を選んでください。
for(int i = 0 ; □ ; i++) System.out.println(i);
解答群
i < 10
i <= 9
i < 11
i <= 11
数字を1から10まで表示したい。次のプログラムの□に入る記述を選んでください。
for( □ ; i++) System.out.println(i);
解答群
int i = 0; i <= 10
int i = 0; i <= 11
int i = 1; i <= 10
int i = 1; i <= 11
数字を10から1まで表示したい。次のプログラムの□に入る記述を選んでください。
for( □ ) System.out.println(i);
解答群
int i = 10; i > 0 ; i--
int i = 10; i > 1 ; i--
int i = 10; i > 10 ; i--
int i = 10; i < 10 ; i--
1、3、5、7..という数字を表示させたい。次のプログラムの□に入る記述を選んでください。
for(int i = 1 ; i < 100 ; □) System.out.println(i);
解答群
i++
i--
i + 2
i += 2
お疲れ様でした。

まとめ

  • forは反復処理を行う際にカウンタ変数を利用することが多い
  • 構文には「初期化の式」「条件」「増減式」という部分がある
  • 条件に合致する際に反復処理を行う
  • カウンタ変数を利用する際は、値を増減させて条件に利用する
参加 ブログランキング

記事頑張って書いたかもねー?と思う方は下を押してもらえるといいかなーなんて
にほんブログ村 IT技術ブログへ
にほんブログ村


Javaランキング

目次へのアクセス
スポンサーリンク
レクタングル

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
レクタングル