0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Java】拡張for文と通常のfor文の違いを解説してみた

Posted at

Javaのループ処理には、よく使われる 通常のfor文 と 拡張for文("enhanced for loop")の2種類があります。この記事では、それぞれの特徴や使い方、使い分けについて詳しく解説します。

通常のfor文とは?

通常のfor文は、インデックスを使って配列やリストの要素にアクセスするため、繰り返し処理を細かく制御することができます。具体的には、開始点・終了点・ステップを指定してループを回すことが可能です。

基本構造
for (初期化; 条件; 更新) {
    // 繰り返し処理
}
String[] names = {"shun", "yamashita"};
for (int i = 0; i < names.length; i++) {
    System.out.println("名前: " + names[i]);
}

上記の例では、インデックス i を使って配列 names の要素にアクセスしています。配列の長さまでインデックスを1ずつ増やしながらループを回し、各要素を順番に出力しています。

通常のfor文のメリット

  • インデックスを使って要素を細かく制御可能
  • 特定の範囲やステップを自由に設定できる
  • 逆順や飛ばしながら処理することも可能

拡張for文とは?

拡張for文("enhanced for loop")は、Java 5以降で導入された新しいループの構文です。この構文は、コレクション(配列やリストなど)の全要素を1つずつ処理する際に便利です。通常のfor文に比べて、コードがシンプルで読みやすくなります。

基本構造
コードをコピーする
for (要素の型 変数名 : コレクション) {
    // 繰り返し処理
}
コードをコピーする
String[] names = {"shun", "yamashita"};
for (String name : names) {
    System.out.println("名前: " + name);
}

この例では、names 配列の各要素を順番に name 変数に代入し、ループ内でそのまま出力しています。インデックスを意識せずに、配列やリストの全要素にアクセスできるのが特徴です。

拡張for文のメリット

  • コードがシンプルで可読性が高い
  • インデックスを気にする必要がない
  • 全要素を順番に処理するのに最適

通常のfor文 vs 拡張for文の比較

項目 通常のfor文 拡張for文
インデックス 必要 不要
柔軟性 高い 低い
使いどころ 範囲指定や飛ばし処理など、細かい制御が必要な場合 シンプルな全要素処理
逆順処理 可能 不可能
可読性 やや複雑 シンプルで読みやすい

逆順処理

例: 逆順でのループ
通常のfor文 では、インデックスを操作して逆順に処理が可能です。

java
String[] names = {"shun", "yamashita"};
for (int i = names.length - 1; i >= 0; i--) {
    System.out.println("名前: " + names[i]);
}

拡張for文 では逆順処理はできません。順番に全要素を処理することに特化しています。

どちらを使うべき?

通常のfor文 を使うべき場面

要素にインデックスでアクセスしたい場合
逆順や飛ばし処理など、細かい制御が必要な場合
ループ回数を自由に制御したい場合

拡張for文 を使うべき場面

全要素を順番に処理したい場合
シンプルで可読性の高いコードが求められる場合
インデックスを意識せずに書ける場合

まとめ

拡張for文は、シンプルで全要素を順に処理する際に非常に便利です。一方で、インデックスを使った柔軟な制御が必要な場合は通常のfor文を使います。状況に応じて、これら2つのループ処理を使い分けることで、効率的で読みやすいコードを書くことができます。

参考リンク
公式ドキュメント - Java for文
https://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?