for文を書く際に拡張for文を使うことが多いので、for文と拡張for文の違いや、拡張for文の利便性をまとめます。
1. for文とは
まず、for文について説明します。
for文は以下の要素で成り立ちます。
・for文で使用する変数の宣言と初期化を行う初期化式
・繰り返し処理が実行される条件を記載する条件式
・ループ処理が終わるたびに実行される変化式
for (初期化式; 条件式; 変化式;) {
処理
}
サンプルに当てはめてみます。
iは0から始まり、numに1が足される処理が10回実行されます。
int num = 0;
for (int i = 0; i <10; i++;) {
num += 1;
}
2. 拡張for文とは
次に、拡張for文について説明します。
拡張for文は、配列やArrayListなどのコレクションの要素に対して順番に処理を行うことができます。
()内には以下の要素を記載します。
・for文で使用する変数の型
・for文で使用する変数名
・処理を実行したい配列名またはコレクション名
for (型 変数名 : 配列名またはコレクション名) {
処理
}
サンプルに当てはめてみます。
int型のscoresという配列の要素をfor文でループし、処理するたびにnumに1を代入しています。
int num = 0;
int[] scores = {60, 85, 74, 97, 100};
for (int test : scores) {
num += 1;
}
この例は、通常のfor文でも表現することができます。
scoresの配列の数だけループするので同じ処理を実行できます。
ただし、このように比べると配列やコレクションの要素に対して処理を実行する場合は、拡張for文の方が可読性が高いことが分かります。
int num = 0;
int[] scores = {60, 85, 74, 97, 100};
for (int i = 0; i < scores.length; i++) {
num += 1;
}
3. おわりに
同じ処理をさせたい場合でもコードの書き方は一通りではないことや、多様な書き方ができる中でも可読性を重視して推奨される表現があることを学びました。
その時々に応じて、最適な表現を選べるように勉強を続けていきたいと思います。