プログラミングの3大要素として全てのプログラマーが身につけておくべき知識が「順次」「反復」「分岐」の3つの処理です。
本記事では、Javaの「反復(繰り返し)」処理で利用する「for文」の使い方について、サンプルコードをまじえながらご紹介していきたいと思います。
Javaにおけるfor文の基本的な使い方
Javaの「for文」の基本的な使い方としては、指定した条件内で繰り返しの処理が実施させることが可能です。
for文の基本構文
まずfor文の基本構文は下記となります。
for(初期化式; 条件式; 更新式) { //処理を記述 }
「初期化式」に関しては、for文が開始される初回の1回のみ実施されます。
そこから「条件式」で記述した条件に該当する限り、for文の内部に記述した処理が実施されます。
for文の処理が一度実施される毎に「更新式」に記述した内容が実施され、再度「条件式」での判定を行います。
実際にfor文を利用したコードを確認しよう
実際にサンプルコードで動きをみていきましょう。
import java.util.*; public class Main { public static void main(String[] args) throws Exception { for(int count = 1; count < 6; count++ ) { System.out.println("実行回数:" + count + "回目"); } } }
サンプルコードを実行した結果が下記の通りとなります。
実行回数:1回目 実行回数:2回目 実行回数:3回目 実行回数:4回目 実行回数:5回目
まず「初期化式」の部分で「count」という変数を「1」に初期化しています。
次に「条件式」の部分ですが、変数「count」が「6」未満の場合に処理を実施させることが意味しています。
次に「更新式」に関してですが、処理を1回実施するたびに変数「count」に「1」プラスするという処理を記述しています。
実際に動かしてみると初期化式で設定した「1」から条件式で設定した値未満の最大値である「5」まで同じ処理が繰り返し実行され、結果のような文言が出力されます。
for文はブロックを用いない記述法も存在する
for文には基本構文で学んだ通り「{}」のブロックの中に処理を記述しますが、ブロックを用いない記述法でも同様に機能させることが可能です。
import java.util.*; public class Main { public static void main(String[] args) throws Exception { for(int count = 1; count < 6; count++ ) System.out.println("実行回数:" + count + "回目"); } }
サンプルコードからfor文の{}ブロックを外しただけですが、実行結果は全く同じとなります。
実行回数:1回目 実行回数:2回目 実行回数:3回目 実行回数:4回目 実行回数:5回目
しかし、注意してもらいたい点が1つあり、{}ブロックを用いない場合、繰り返し処理を1つしか記述出来ません。
具体的なサンプルで解説していきたいと思います。
import java.util.*; public class Main { public static void main(String[] args) throws Exception { for(int count = 1; count < 6; count++ ) { System.out.println("実行回数:" + count + "回目"); System.out.println("複数実行:" + count + "回目"); } } }
まず{}ブロックを記述した場合のfor文ですが、System.out.printlnの処理を追加しています。
実行結果は下記のようになり、問題なく処理されたことがご確認頂けます。
実行回数:1回目 複数実行:1回目 実行回数:2回目 複数実行:2回目 実行回数:3回目 複数実行:3回目 実行回数:4回目 複数実行:4回目 実行回数:5回目 複数実行:5回目
しかし{}ブロックを記述しないfor文で同様の処理を実施しようとすると2行目の処理が実施出来ずエラーとなります。
import java.util.*; public class Main { public static void main(String[] args) throws Exception { for(int count = 1; count < 6; count++ ) System.out.println("実行回数:" + count + "回目"); System.out.println("複数実行:" + count + "回目"); // エラーとなる行 } }
Javaのfor文で欠かせないループ制御を理解しよう
for文には処理を途中で抜けるための「break文」と処理をスキップさせるための「continue文」が存在します。
それぞれの基本的な使い方についてご紹介していきます。
処理を中断させるには「break文」を活用しよう
通常for文では「条件式」の部分に処理の中断条件を記述しますが、「break文」を利用することでも同様の処理を実装することが可能です。
import java.util.*; public class Main { public static void main(String[] args) throws Exception { for(int count = 1; count < 6; count++ ) { if(count == 3) { System.out.println("実行回数:" + count + "回目の時点で処理を中断しました。"); break; } System.out.println("実行回数:" + count + "回目"); } } }
サンプルコードではfor文の中で「count」が3回目の時点でループ処理を抜けるよう実装されています。
実行した結果が下記の通りとなります。
実行回数:1回目 実行回数:2回目 実行回数:3回目の時点で処理を中断しました。
このようにif文などと組み合わせることで、「break文」を利用して任意のタイミングでfor文の処理を中断させることが可能となります。
「continue文」を利用して一定の条件を満たした際の処理をスキップしてみよう
import java.util.*; public class Main { public static void main(String[] args) throws Exception { for(int count = 1; count < 6; count++ ) { if(count == 3) { continue; } System.out.println("実行回数:" + count + "回目"); } } }
サンプルコードではfor文の中で「count」が3回目の時点でループ処理をスキップするよう実装されています。
実行した結果が下記の通りとなります。
実行回数:1回目 実行回数:2回目 実行回数:4回目 実行回数:5回目
System.out.printlnよりも前の段階で3回目の処理をスキップしているため、実行結果としては3回目の出力だけが行われていない結果となっています。
さいごに
本記事では、繰り返し処理で利用するJavaのfor文の基本的な使い方についてご紹介してきました。
今回ご紹介した内容は最も基本的な部分のみとなりますが、Javaでプログラムを実装していく上で欠かせない知識となります。
他のプログラミング言語を利用する場合でも、基本的な部分は同じですのでしっかりと本記事の内容を理解してシステム開発に役立ててみてください。
for文では{}ブロックを記述しない方法も存在しますが、基本的には実装する処理の数に関係なく{}ブロックを記述しておくことをおすすめします。