【Java】for構文を使った繰り返し処理
データベースからの値の取り出しなど、プログラムでは同じ処理を機械的に何度も繰り返すことがあります。
その場合、for構文を使います(他にもwhile構文というものもあります)。
1.for構文とは?
for構文とは、カウント用変数・条件式・ループ処理を設定し、指定した回数処理を繰り返すものです。
for(カウント用変数の初期化; 条件式; ループ処理){
ここに処理
}
カウント用変数の初期化で変数の初期値を決定し、そのカウント用変数値が条件式に合致(true)した時に処理を実行します。
その後ループ処理でカウント用変数の値を変化させ、再度カウント用変数を条件式と照らし合わせ、合致しなくなるまで(falseになるまで)処理を繰り返し行います。
【参考】
for構文の詳細な説明は繰り返し処理 for構文を参照してください。
2.繰り返し処理
では、実際にプログラムを動かしてfor構文の内容を理解しましょう。
1.基本
手始めに処理を10回繰り返してみましょう。
「Lesson027.java」というファイルを作成し、以下のJavaプログラムを入力・保存してください。
public class Lesson027{ public static void main(String args[]){ //10回処理を繰り返す for(int i = 1;i <= 10;i++){ System.out.println(i + "回目"); } } }
【プログラムの説明】
カウント用変数iを準備し、初期値を1とします。そして変数iの値が10以下ならば処理を繰り返します(ループさせます)。
なお、処理を1回行う事に「i++」すなわち変数iの値をプラス1にします。
以下のように「javac Lesson027.java」でコンパイルし、「java Lesson027」で実行してください。
C:\Users\ysk\Desktop\java>javac Lesson027.java
C:\Users\ysk\Desktop\java>java Lesson027
1回目
2回目
3回目
4回目
5回目
6回目
7回目
8回目
9回目
10回目
このようにfor構文を使うことで、条件式がfalseになるまで、繰り返し処理を行えます。
2.1000以下の奇数を出力
1000以下の奇数を全て調べろ!と言われたらどうすればよいでしょうか?
奇数と偶数の判別は楽勝ですが、1000以下のすべての奇数を調べるのはとっても面倒です。
しかし(Javaにおいて)for構文を用いればとてもエクセレントに奇数を出力できます。
では、「Lesson028.java」というファイルを作成し、以下のJavaプログラムを入力・保存してください。
public class Lesson028{ public static void main(String args[]){ //1000以下の奇数を出力 for(int i = 1; i <= 1000; i+=2){ System.out.println(i); } } }
【プログラムの説明】
変数iの初期値を1とし、1000以下ならば処理を実行します。
ループ処理で「i += 2」すなわち変数iをプラス2することで、奇数のみ出力できます。
そして以下のように「javac Lesson028.java」でコンパイルし、「java Lesson028」で実行してください。
C:\Users\ysk\Desktop\java>java Lesson028
1
3
5
7
・
・
略
・
・
995
997
999
このように、条件式とループ処理を工夫することで、自分が欲しい情報を取得することが可能です。
3.1~1000の総和を求める
1~1000の総和すなわち「1+2+3+・・・・999+1000」を求めろ!と言われたらどうすればよいでしょうか?
これは電卓を使っても簡単にできるものではありません。
しかし1~1000の総和もfor構文にかかれば一発です。
「Lesson029.java」というファイルを作成し、以下のJavaプログラムを入力・保存してください。
public class Lesson029{ public static void main(String args[]){ //足し算用の変数 int total = 0; //1~1000までの総和を求める for(int i = 1; i <= 1000; i++){ total = total + i; } System.out.println("1~1000の総和は" + total); } }
【プログラムの説明】
足し算用の変数totalを作成し、for構文内で「total = total + i」をすることで1~1000までの総和を求めています。
そして以下のように「javac Lesson029.java」でコンパイルし、「java Lesson029」で実行してください。
C:\Users\ysk\Desktop\java>java Lesson029
1~1000の総和は500500
4.for構文の中にfor構文
プログラミングでは、for構文の中にfor構文を入れて、複雑な繰り返し処理を行うことがよくあります。
ここではごく簡単なサンプルプログラムを実行させたいと思います。
では「Lesson030.java」というファイルを作成し、以下のJavaプログラムを入力・保存してください。
public class Lesson030{ public static void main(String args[]){ for(int i=1; i<=3; i++){ for(int j=1; j<=3; j++){ System.out.println(i + "年" + j + "組"); } } } }
【プログラムの説明】
外側のfor構文で変数iを1~3まで繰り返す。内側のfor構文で変数jを1~3まで繰り返す。
この操作で中学校の学年クラスを出力しています。
そして以下のように「javac Lesson030.java」でコンパイルし、「java Lesson030」で実行してください。
C:\Users\ysk\Desktop\java>java Lesson030
1年1組
1年2組
1年3組
2年1組
2年2組
2年3組
3年1組
3年2組
3年3組
コメント
まだコメントはありません。