【保存版】Javaのfor文、拡張for文、forEachのループ処理の使い方

中沢 丈
書いた人 中沢 丈


侍エンジニア塾ブログは、未経験からWebアプリ開発と仕事獲得をサポートする
侍エンジニア塾のオウンドメディアです。
プログラミング学習を覗き見

こんにちは!エンジニアの中沢です。

Javaにはループ処理で同じ処理を繰り返し行うためのfor文があります。

さらに、for文を簡潔に記述できる拡張for文Java8のforEachメソッドもあります!

この記事では、

・for文とは
・for文の使い方
・配列のデータをfor文で処理する方法
・List内のデータをfor文で処理する方法

という基本的な内容から、

・for文のループをbreak文で抜ける方法
・for文のループをcontinue文でスキップする方法
・拡張for文(foreach文)の使い方
・Java8のforEachメソッドの使い方

などの応用的な使い方に関しても解説していきます。

今回はこれらの方法を覚えるために、for文のさまざまな使い方をわかりやすく解説します!

for文とは

for文は同じ処理を指定した回数だけ繰り返し実行する場合に使います。

for文は次のように記述します。

初期化式はfor文の最初に一度だけ実行されます。
主にfor文で使用する変数の宣言と初期化に使用します。

条件式はループを開始するたびに評価され、”true”のときに”{}”内のブロックの処理を行います。
この条件式でループ処理を行う回数を指定する事ができます。

最後に変化式ですが、これはループ処理が終わるたびに実行される式です。
主に条件式で使用している変数の値を増加させるために使用します。

ここでは、for文の基本的な構文を解説しました。

次の章からはfor文の具体的な使い方を解説していきます。

for文の使い方

基本的な使い方

for文は同じ処理を繰り返し行うので、Listや配列ですべての要素に対して順番に処理を行うときに使われます。

例えば、Listのすべての要素を順番に表示するときには次のように使用します。

[実行結果]

このプログラムでは、条件式にListのサイズを指定することでListの要素数だけ処理を繰り返しています。

ここでは、for文を使ってListでループ処理を行う方法を簡単に解説しました。

List内のデータをfor文で処理するさらに詳しい使い方は、こちらの記事で解説しているのでぜひ確認してください!

省略形のfor(;;)とは

for文の中の式は省略することができます。

for文の外で変数の初期化を行う場合は初期化式を省略できます。

また、for文の中で変数を増減させる場合は変化式を省略できます。

ただし、条件式を省略すると常に”true”となり無限ループになるので注意してください。

for文の式の省略を次のプログラムで確認してみましょう。

[実行結果]

このプログラムでは、初期化式、条件式、変化式を省略した使い方を解説しています。

条件式を省略すると無限ループになるため、breakで処理を抜けています。

プログラムの実行結果から、for文の式を省略しても動作することが確認できました!

2重ループの使い方

ここではfor文の2重ループの使い方を解説します。

2重ループは二次元配列のすべての要素を表示したい場合などに使われます。

次のプログラムで確認してみましょう。

[実行結果]

このプログラムでは、2重ループで二次元配列のすべての要素を表示しています。

プログラムの実行結果から、2重ループが正しく使えていることが確認できました!

for文の処理を途中で抜ける方法

for文はループ処理を行っている途中で処理の目的を達成した場合に、ループを抜けて残りの処理を行わずに終わらせることができます。

break文でループを抜ける方法

ここではbreak文でループを抜ける方法を解説します。

for文の中でbreak文が実行されると、for文の残りの処理を終了して次の処理に移ります。

break文でループを抜ける方法を次のプログラムで確認してみましょう。

[実行結果]

このプログラムでは、文字列の配列から"a"が見つかるまでループ処理をしています。

1番目の"a"が見つかった時点でbreak文を使ってループを抜けているので、配列の中の2番目の"a"のインデックス番号は表示されません。

break文は最も内側の1つのループから抜け出すので、多重ループのときには注意してください。

多重ループの外側まで抜ける場合は、ラベル付きbreak文を使います。

ラベル付きbreak文の使い方など、break文について詳しく知りたいときはこちらの記事を確認してください。

無限ループをbreakで抜ける方法

通常はfor文の条件式でループを抜ける条件を指定しますが、ここでは無限ループをbreakで抜ける方法を解説します。

breakでループを抜けるには、if文で条件を指定します。

次のプログラムで確認してみましょう。

[実行結果]

このプログラムではif文を使ってすべての文字が表示された後に、breakでループを抜けています。

プログラムの実行結果から、breakで正しくループを抜けたことが確認できました!

continue文でループをスキップする方法

for文全体を終わらせるのではなく、現在のループ処理の残りをスキップして次のループ処理を開始したい場合にはcontinue文を使います。

continue文でループをスキップする方法を、次のプログラムで確認してみましょう。

[実行結果]

このプログラムでは文字列が”a”のときにcontinue文で表示する処理をスキップしているので、”a”以外の文字列が表示されています。

continue文は最も内側の1つのループをスキップするので、多重ループの場合は注意してください。

多重ループの外側までスキップする場合には、ラベル付continue文を使います。

ラベル付きcontinue文の使い方など、continue文について詳しく知りたいときはこちらの記事を確認してください。

拡張for文とJava8のforEachメソッド

拡張for文の使い方

拡張for文は、配列やListなどのコレクションのすべての要素に対して順番に処理を行うために使います。

拡張for文は通常のfor文と違って条件式と変化式が無いため、簡潔にコードが記述できます。

拡張for文の使い方を次のプログラムで確認してみましょう。

[実行結果]

このプログラムでは拡張for文を使って、配列のすべての要素を順に表示しています。

拡張for文の使い方を確認することができました!

Java8のforEachメソッドの使い方

Java8でforEachメソッドラムダ式が追加されました。

これにより、さらに簡潔にコードが書けるようになりました。

forEachメソッドとラムダ式の使い方を次のプログラムで確認してみましょう。

[実行結果]

このプログラムでは配列をstreamに変換してから、forEachメソッドですべての要素を表示しています。

拡張for文とforEachメソッドのさらに詳しい使い方は、こちらの記事で解説しているのでぜひ確認してください!

まとめ

いかがでしたか?

今回はfor文の使い方について解説しました。

for文はループ処理の基本なのでぜひ覚えてくださいね。

もし、for文を使ってループ処理を行う方法を忘れてしまったらこの記事を確認してください!

Javaカリキュラム無料公開中!
この記事はJava入門完全攻略ガイド【基礎学習/アプリ開発/仕事獲得】の一部になります。このカリキュラムは、プログラミング入門者が、基礎学習からアプリ開発、さらには仕事獲得まで体系的に学べる内容となっています。

Java学習に必要な情報を一つにまとめていますので効率よくJavaを学ぶことが出来ます。この機会に是非活用していただければと思います。


33歳、未経験だった僕がフリーエンジニアになれた理由
現在フリーでWEBエンジニアをやられている濱口直行さん。33歳で、プログラミングを学び始め、約半年という短い期間で独立までされた学習ログを余すことなくインタビューさせていただきました。

プログラミングを学習中の方はもちろん、独立をお考えの方まで幅広く活用できる記事になっています。この機会に是非活用していただければと思います。


最短でJavaを習得したい方へ

もし、あなたが、

「難しすぎて学習が全然進まない」
「学習量が膨大でゴールが見えない」
「エラーを解決するのに何日もかかってしまう」

など、プログラミング学習やキャリアに関してお困りであれば、まずは『無料体験レッスン』にお申し込み下さい。

あなたにとって、最適の解決策をご提案させていただきます。

詳しくは下の画像から詳しいサービス内容をご確認ください。

cta_bannar-java2

非常識な結果を出した卒業生

活躍する現役エンジニア

人気記事セレクション

LINEで送る
Pocket

この記事が気に入ったら
いいね!をしてフォローしよう

最新情報をお届けします

書いた人

中沢 丈

中沢 丈

フリーランスエンジニア。
システム開発からコンテンツ作成まで幅広く対応します。

連絡先はこちらです。
[email protected]