Javaを勉強し始めると多くの場所でfor文を使用することになります。
しかし下記記事でもご紹介いたしました標準的なfor文のみしか知らないという方も多いのではないでしょうか?
【Java】ループの方法 | エンジニアKISARAGIの備忘録 (kisaragi-it.com)
それはとてももったいないことです。
for文には他にも色々な種類があり、使用用途によって使い分けることでその効力を発揮します。
今回はそんな標準的に使用しているfor文以外のfor文の使用方法について解説していきます。
この記事を読み切るころには新しいfor文を使ってみたいと思っていること間違いなしですw
拡張for文の使用方法
まず初めにご紹介するのは拡張for文と言われるものです。
この拡張for文の特徴を一言で表すなら「簡単」です。
標準的なfor文ですと、初期値、ループ条件、カウント値の3つを記載する必要がありました。
これはとても面倒くさく、私もJavaを学び始めたころはどこに初期値を入力して、どこにループ条件を入力するんだ?と何度も迷って記憶があります。
そういった煩わしさから解放してくれるのが拡張for文です。
では記載方法を見ていきましょう。
for(変数の型 変数 : 集合){}
上記が拡張for文の記載方法です。
どうです?見た目からしてとても見やすくなっていませんか?
機能としては集合と記載した配列やListといったものから一つずつデータを取得して変数に代入していくというものです。
ループ条件やカウント値というものも記載する必要がなく、データがある間はループが続くと考えてい頂いて大丈夫です。
これだけでは少しイメージがわかないという方のために下記に実際のコードと実行結果を記載いたしました。
【使用方法】
public class ex {
public static void main(String[] args){
String a[]= {"北海道","東京","大阪","京都","福岡"};
for(String b : a) {
System.out.println(b);
}
}
}
【実行結果】
北海道
東京
大阪
京都
福岡
上記コードはaというString型の配列に5つの都道府県が入っています。
それを拡張for文を使用してString型の変数bに一つずつ入れていって出力しています。
上記コードを見ていただいたら分かる通り、どこにも配列の中にいくつのデータが入っているのか記入されていません。
そのため仮に配列a宣言時のデータに「沖縄」を追加したとしても、どこも修正する必要がないのです。
このように拡張for文が通常のfor文に比べてとても簡単に使用できることが分かっていただけたかと思います。
forEachメソッドの使用方法
では次にforEachメソッドについてご紹介します。
メソッドについてわからないという方は下記記事で解説していますので、参考にしてみてください。
【Java】クラスとは何か?メソッドとは何か? | エンジニアKISARAGIの備忘録 (kisaragi-it.com)
forEachメソッドの特徴は一行で表すことができるというものです。
言葉で説明するのは少し難しいので、実際の構文を見てみましょう。
コレクション.forEach(引数 -> 処理);
まずコレクションはListやMap型の変数で、引数にそこから取り出した値を入れていきます。
そして処理部分が繰り返し実施したい処理を記載します。
では実際の記載方法と実行結果を見ていきましょう。
【使用方法】
public class ex2 {
public static void main(String[] args){
List<String> list = new ArrayList<>();
list.add("私の名前は柊木です。");
list.add("20代会社員です。");
list.add("趣味は読書です。");
list.add("よろしくお願いします。");
list.forEach(s -> System.out.println(s));
}
}
【実行結果】
私の名前は柊木です。
20代会社員です。
趣味は読書です。
よろしくお願いします。
上記のようにlistに入っているString型のデータを一つずつ出力していくことが可能です。
上記コード上で実際に繰り返し文に当たるのは「list.forEach(s -> System.out.println(s));」の部分で、一行で記入できていることが分かります。
そしてここで使用している「->」はラムダ式を使用する際に記載するものです。
またラムダ式については解説しますが、ここでは「ラムダ式を使わなかったらとても長い文になるから使うんだ」という風に思っておいてください。
break文、continue文の使用方法
最後にご紹介するのはbreak文、continue文についてです。
break文については簡単に下記記事で記載していますので、一度読んでみてください。
【Java】if文での条件分岐を徹底解説 | エンジニアKISARAGIの備忘録 (kisaragi-it.com)
そしてcontinue文もbreak文と似た機能がありますが、break文はループを抜け出すのに使用しましたが、continue文は現在の処理をスキップすることができます。
詳細は下記の使用方法と実行結果を見て解説していきます。
【使用方法】
public class ex3 {
public static void main(String[] args){
for(int i=0;i<10;i++) { ※
if(i == 5) {
continue;
}
System.out.println(i);
}
}
}
【実行結果】
0
1
2
3
4
6
7
8
9
上記は0~9までの値を出力しようとしています。
しかし途中で「i == 5」の時にcontinue文が実行されるように記載しています。
これはiが5となると出力はされずに※に戻る処理となっています。
※に戻るとiはi++で次の6にされるため、5は出力されずに処理が進むこととなります。
以上がcontinue文の使用方法です。
このcontinue文とbreak文をうまく使い分けることで自分が実施したい処理と、実施したくない処理を分けることができるというわけです。
まとめ
この記事ではfor文の色々な使用方法や機能について下記手順でご紹介しました。
- 拡張for文の使用方法
- forEachメソッドの使用方法
- break文、continue文の使用方法
場所によって今回ご紹介したfor文や機能を使い分けることでより効率的で美しいコードを記載することができるようになります。
プログラムは実際に使うことで覚えていきますので、どんどん使っていってください。
以上で今回の解説は終了となります。
コメント