【Java】拡張 for文

# 拡張for文
## 拡張for文とは
[配列]やコレクションといった複数の要素を持っているものからすべての要素に含まれる値を順番に取り出して処理するために使われます。

拡張for文は、「要素の指定ができない」という通常の[for文]との違いがあります。
 
 ## 拡張for文の記述の仕方
  拡張for文の基本的な書き方はこちらです。
 
 ```java
for (型 変数名: 配列名もしくはコレクション名){
    実行する処理
}
```
 
値を順番に取り出したい配列やコレクションと、取り出した値を格納する変数を:(コロン)で区切って記述します。

繰り返される回数は配列やコレクションに含まれている値の数なので条件式と変化式は必要ありません。
 
## [for文]との使い分け
結論、拡張for文をつかったほうが「 **記述内容がシンプルでコーディングもしやすく、可読性も優れている**」ので記述ミスが軽減される点で現場では重宝されます。

こちらが通常の[for文]です。

```
for(初期化式; 条件式; 変化式){
　実行する処理
}
```
### for文 の使い所

  - 指定した条件で繰り返し処理を実行するときに使う
  - 繰り返す処理の内容を指定できる。

### 拡張for文 の使い所

- コレクションのすべての要素に対して繰り返し処理をするとき
- 「 *リストの 何番目が必要* 」という要件がないとき

[for文]をより簡単に書けるメリットはとても大きいので、「**拡張for文でかけるかどうかを検討**」し、難しそうだったら[for文]を使うといいかと思います。


## 拡張for文のサンプルコード
こちらは配列内の値を全部足すループと、全部引き算をかけるループのコードになります。

```java
public class Main {

    public static void main(String[] args) {
        int plusTotal = 0;
        int minusTotal = 0;
        int number[] = { 1, 2, 3, 4, 5 };
        for (int score : number) {
            // 配列内で足し算するループ
            plusTotal += score;
            // 配列内で引き算するループ
            minusTotal -= score;
        }
        System.out.println("配列内を全部プラスすると" + plusTotal);
        System.out.println("配列内を全部マイナスすると" + minusTotal);

    }

}
```
実行結果

```
配列内を全部プラスすると15
配列内を全部マイナスすると-15
```


## 参考文献・記事

- [【初心者でもすぐわかる】Javaの拡張for文の使い方まとめ
](https://eng-entrance.com/java-for-expand)
- [【Java入門】なるほど納得！for文と拡張for文の違い](https://www.internetacademy.jp/it/programming/javascript/difference-between-for-statement-and-extended-for-statement.html)


[for文]:https://qiita.com/takahirocook/items/05bfe37bb4ba64f3a78e
[while文]:https://qiita.com/takahirocook/items/05bfe37bb4ba64f3a78e
[continue]:https://qiita.com/takahirocook/items/05bfe37bb4ba64f3a78e
[break]:https://qiita.com/takahirocook/items/05bfe37bb4ba64f3a78e
[ループ文]:https://qiita.com/takahirocook/items/05bfe37bb4ba64f3a78e
[インスタンス]:https://qiita.com/takahirocook/items/ec01cdcbb440cf0d1cc4
[インスタンス化]:https://qiita.com/takahirocook/items/ec01cdcbb440cf0d1cc4
[アクセス修飾子]:https://qiita.com/takahirocook/items/e51b0b9d37d95ad587fe
[フィールド]:https://qiita.com/takahirocook/items/28df75a133049a74ece1
[フィールド変数]:https://qiita.com/takahirocook/items/28df75a133049a74ece1
[new演算子]:https://qiita.com/takahirocook/items/00f9f97592bf50831d39
[new]:https://qiita.com/takahirocook/items/00f9f97592bf50831d39
[カプセル化]:https://qiita.com/takahirocook/items/e469a7c0539a0012868e
[クラス]:https://qiita.com/takahirocook/items/50cbbdca8e21539170e9
[メソッド]:https://qiita.com/takahirocook/items/5bfe43576d87a2a4006c
[mainメソッド]:https://qiita.com/takahirocook/items/f4635915337303de338c
[メソッドの呼び出し]:https://qiita.com/takahirocook/items/f4635915337303de338c
[コンストラクタ]:https://qiita.com/takahirocook/items/fa1822f2f22c3786593e
[引数]:https://qiita.com/takahirocook/items/5e5b0ba79e869f4a592e
[戻り値]:https://qiita.com/takahirocook/items/3b6fa670a1d6dd4a9386
[this]:https://qiita.com/takahirocook/items/d251ec4693c68f6b9538
[getter・setter]:https://qiita.com/takahirocook/items/27828bc8477735612021
[setter]:https://qiita.com/takahirocook/items/27828bc8477735612021
[getter]:https://qiita.com/takahirocook/items/27828bc8477735612021
[オブジェクト指向]:https://qiita.com/takahirocook/items/041ba7a096b71ab8ffd4
[継承]:https://qiita.com/takahirocook/items/6c84ea66a6e2ad536a37
[オーバーライド]:https://qiita.com/takahirocook/items/09dd8e5f56d6617ce45a
[オーバーロード]:https://qiita.com/takahirocook/items/b937c3c07126fe7e02a4
[this]:https://qiita.com/takahirocook/items/d251ec4693c68f6b9538
[super]:https://qiita.com/takahirocook/items/75a07131e7e791c8442c
[スーパークラス]:https://qiita.com/takahirocook/items/75a07131e7e791c8442c
[final]:https://qiita.com/takahirocook/items/5e0916d9bf28bcf68d0c
[final修飾子]:https://qiita.com/takahirocook/items/5e0916d9bf28bcf68d0c
[定数]:https://qiita.com/takahirocook/items/5e0916d9bf28bcf68d0c
[static修飾子]:https://qiita.com/takahirocook/items/cf527f85d17a5af86735
[static]:https://qiita.com/takahirocook/items/cf527f85d17a5af86735
[インスタンスフィールド]:https://qiita.com/takahirocook/items/cf527f85d17a5af86735
[インスタンス変数]:https://qiita.com/takahirocook/items/cf527f85d17a5af86735
[動的メソッド]:https://qiita.com/takahirocook/items/cf527f85d17a5af86735
[インスタンス変数]:https://qiita.com/takahirocook/items/cf527f85d17a5af86735
[静的メソッド]:https://qiita.com/takahirocook/items/cf527f85d17a5af86735
[クラスメソッド]:https://qiita.com/takahirocook/items/cf527f85d17a5af86735
[静的メソッド]:https://qiita.com/takahirocook/items/cf527f85d17a5af86735
[クラスフィールド]:https://qiita.com/takahirocook/items/cf527f85d17a5af86735
[クラス変数]:https://qiita.com/takahirocook/items/cf527f85d17a5af86735
[静的変数]:https://qiita.com/takahirocook/items/cf527f85d17a5af86735
[インターフェイス]:https://qiita.com/takahirocook/items/ca84be8dfef664b19194
[インターフェース]:https://qiita.com/takahirocook/items/ca84be8dfef664b19194
[パッケージ]:https://qiita.com/takahirocook/items/39b58d17abcb159ef5c1
[インポート]:https://qiita.com/takahirocook/items/59a8a09cab6a98d3bca2
[import]:https://qiita.com/takahirocook/items/59a8a09cab6a98d3bca2
[配列]:https://qiita.com/takahirocook/items/16a123fb73b30869053b
[配列操作]:https://qiita.com/takahirocook/items/16a123fb73b30869053b
[List]:https://qiita.com/takahirocook/items/4d622fc6f271569783b5
[list]:https://qiita.com/takahirocook/items/4d622fc6f271569783b5