【JavaScript】forEachで効率的に配列の要素を順に取り出す

Javaのfor文の使い方―基本構文からネストや拡張for文まで

ENGINEER.CLUB編集部

ENGINEER.CLUB編集部

Javaの構文の一つに「for文」があります。
for文は繰り返しを扱う際に非常に便利です。
このページでは、for文の基本と応用を例文を交えて記載していきます。


1.Javaのfor文の基本構文

Javaのfor文ではカウントのための変数を用意します。
変数は処理を行った後に毎回変化させ、条件を満たさなくなるまで繰り返します。
構文は下記の通りです。

for(変数の初期値;繰り返しの条件;変数の変化){
繰り返しの処理
}

下記のコードはiを0から5まで変化させながら、画面に表示しています。
① iに0を設定(i=0)
② iを表示(System.out.println(i))
③ iに1を加える(i++)
④ iが5より小さい場合は②に戻り、i=5になったらfor文を抜ける(i<5)

public class Main {
	public static void main(String[] args) {
		for(int i=0; i<5; i++) {
			System.out.println(i);
		}
	}
}

実行結果

0
1
2
3
4

1から5の合計を出す場合は以下のようになります。
合計を計算するための変数totalを用意します。
iの初期値を1にして、条件を「i<=5」にしています。
for文の中でtotalにiを足していきます。
合計の表示はfor文の外にしています

		int total=0;
		for(int i=1; i<=5; i++) {
			total = total + i;
		}
		System.out.println("total:" + total);

実行結果 

total:15

2.for文の応用

2-1.for文の処理を途中で抜けるbreak文の使い方

break文を使用すると、for文の処理を途中で完了することができます。
以下はiが3になった時にfor文を完了します。

		for(int i=1; i<=5; i++) {
			if(i==3) {
				break;
			}
			System.out.println(i);

実行結果

1
2

2-2.for文の処理をスキップするcontinue文の使い方

continue文を使用すると、後の処理をスキップして次の繰り返しを行います。
break文ではfor文を完了しましたが、continue文ではfor文の処理は続きます。
以下はiが2の倍数の時は画面に表示しません。

continue文を使用すると、後の処理をスキップして次の繰り返しを行います。
break文ではfor文を完了しましたが、continue文ではfor文の処理は続きます。
以下はiが2の倍数の時は画面に表示しません

実行結果

1
3
5

2-3.for文を2重、3重にするネストの使い方

for文の中でさらにfor文を利用することができます。

以下は九九の結果(i*j)を表示します。
最初はi=1,j=1なので1*1=1、次はi=1,j=2なので1*2=2、、、と続きます。
jが9まで進むと、改行して次の段を計算します。
1桁の数字もスペースを入れた2桁で表示するために「%2d」を使用しています

		for(int i=1; i<=9; i++) {
			for(int j=1; j<=9; j++) {
				System.out.printf("%2d ", i*j);
			}
			System.out.println();
		}

実行結果

1  2  3  4  5  6  7  8  9 
2  4  6  8 10 12 14 16 18 
3  6  9 12 15 18 21 24 27 
4  8 12 16 20 24 28 32 36 
5 10 15 20 25 30 35 40 45 
6 12 18 24 30 36 42 48 54 
7 14 21 28 35 42 49 56 63 
8 16 24 32 40 48 56 64 72 
9 18 27 36 45 54 63 72 81

2-4.for文の繰り返しを配列に対して行う拡張for文の使い方

これまでは変数を使用して、指定回数の繰り返しを行ってきました。
for文の繰り返しは、他にも配列に対して行うことができます。
配列の要素を変数に入れながら処理を繰り返します。

構文は下記の通りです。

for(配列の要素を入れる変数:配列){
繰り返しの処理
}

以下は配列fruitsの中身を変数fruitに入れて、fruitを表示しています。
配列fruitsの全ての要素を表示するとfor文が終了します

		String[] fruits = {"りんご", "ばなな", "ぶどう"};
		for (String fruit:fruits){
			System.out.println(fruit);
		}

実行結果

りんご
ばなな
ぶどう

配列を扱うListクラスでも同様の処理を行うことができます

List fruits = new ArrayList<>();
		fruits.add("りんご");
		fruits.add("ばなな");
		fruits.add("ぶどう");
		for (String fruit:fruits){
			System.out.println(fruit);
		}

実行結果

りんご
ばなな
ぶどう

2-5.(補足)forEachメソッドの説明と拡張for文との差異

この先は補足となりますが、「配列の各要素に対して処理を行う」ということはforEachメソッドとラムダ式でも記載ができます。

複雑な処理を行う場合は2-4の拡張for文の方が向いていますが、簡潔な処理の場合は記載が簡潔になります。

ラムダ式は下記のソースの「s->System.out.println(s)」の部分で、「(引数) -> { 処理 }」の形で引数に対して行う処理を記載します。
forEachメソッドと同時に用いることで、Listなどの各要素に対して処理を行うことができます

List fruits = new ArrayList<>();
		fruits.add("りんご");
		fruits.add("ばなな");
		fruits.add("ぶどう");
		fruits.forEach(s->System.out.println(s));

実行結果

りんご
ばなな
ぶどう

3.さいごに

for文を用いることで回数の繰り返しや配列の各要素に対しての処理を行うことができます。

複雑な処理を行うことになっても、for文の基本は「回数の繰り返し」か「配列などの要素の繰り返し」になるので、今回の内容をしっかりと押させてもらえればと思います。

私たちは、全てのエンジニアに市場価値を高め自身の望む理想のキャリアを歩んでいただきたいと考えています。もし、今あなたが転職を検討しているのであればこちらの記事をご一読ください。理想のキャリアを実現するためのヒントが見つかるはずです。

『技術力』と『人間力』を高め定年まで働けるエンジニアを目指しませんか?

私たちは「技術力」だけでなく「人間力」の向上をもって、エンジニアとしてだけでなくビジネスパーソンとして高い水準を目指し、社会や顧客に必要とされることで、関わる人々に感動を与える集団であろうと思っています。

  • 定年までIT業界で働くためのスキルが身につく「感動大学」と「技術勉強会」!
  • 「給与が上がらない」を解消する6ヶ月に1度の明確な「人事評価制度」!
  • 理想のエンジニア像に近づくためのよきアドバイザー「専任コーチ制度」!
  • 稼動確認の徹底により実現できる平均残業時間17時間の働きやすい環境!

現在、株式会社ボールドでは「キャリア採用」のエントリーを受付中です。

まずは以下のボタンより弊社の紹介をご覧いただき、あなたの望むキャリアビジョンをエントリーフォームより詳しくお聞かせください。

コメント

IT業界を目指す求職者へ

プレミアムSES®で市場価値の高いエンジニアへ

株式会社ボールドが約束する5つのプレミアムとは?

IT業界を目指す求職者へ

プレミアムSES®で市場価値の高いエンジニアへ

株式会社ボールドが約束する5つのプレミアムとは?