プログラミングの世界では繰り返し同じ処理を行いたいような場面が多々あります。
そんな時に使われるのがfor文ですが、ただのfor文以外にも拡張for文というものが存在します。
今回はそんな拡張for文を使って繰り返し処理を実装する方法についての解説です!
普通のfor文と拡張for文を両方使えるようになることで、より幅の広い実装をすることができるようになります。
それぞれの特徴をしっかりと理解して、プログラミングスキルを向上させましょう!
拡張for文とはなんぞやって話
拡張for文は配列やコレクション(Listとか)のようないくつかの要素を持っているものから全ての要素に対して順番に処理を行いたい時に使われます。
拡張for文は基本的に次のような書き方をします。
for (型 変数名: 配列 or コレクション) {
処理
}
配列もしくはコレクションの中身が一つずつ変数名に格納されます。
変数名を使って何らかの処理をすることで、配列/コレクションの要素全てに対して処理を行うことが出来ます。
拡張for文を実際に使ってみる
拡張for文の基本的な書き方が理解できたところで実際に拡張for文を使ったプログラムで確認してみましょう。
配列に対する拡張for文
最初に配列に対して拡張for文を使ってみます。
public static void main(String[] args) {
// 配列の宣言
String[] books = {"僕は勉強ができない", "僕は愛を証明しようと思う", "サイコロジー・オブ・マネー"};
// 拡張for文を使ってbooksの中身を取り出して処理をする
for (String book: books) {
// bookを出力する
System.out.println(book);
}
}
Stringの配列booksを宣言し、本のタイトルを格納しました。
拡張for文でbooksの中身を一つずつ出力していきます。
拡張for文の()内でStringを使っているのはbooksがStringの配列だからです。
booksの中身が一つずつbookに格納されて、処理が順番に行われます。
実行結果
僕は勉強ができない
僕は愛を証明しようと思う
サイコロジー・オブ・マネー
Listに対する拡張for文
次にListに対して拡張for文を使ってみます。
public static void main(String[] args) {
// Listの作成
List<String> teams = new ArrayList<>();
teams.add("バルセロナ");
teams.add("レアル・マドリー");
teams.add("アトレティコ・マドリー");
// 拡張for文を使ってteamsの中身を取り出して処理をする
for (String team: teams) {
// teamを出力する
System.out.println(team);
}
}
配列の時とほとんど同じ書き方でList内の全ての要素に対して同じ処理をすることが出来ます。
実行結果
バルセロナ
レアル・マドリー
アトレティコ・マドリー
Mapに対する拡張for文
最後にMapに対する拡張for文の使い方を確認していきます。
Mapはキーとバリューが組み合わされたデータを保持することができ、これもキーとバリューを一つずつ取り出すことができます。
public static void main(String[] args) {
// Mapの作成
Map<Integer,String> teams = new HashMap<>();
teams.put(1, "バルセロナ");
teams.put(2, "レアル・マドリー");
teams.put(3, "アトレティコ・マドリー");
// 拡張for文を使ってteamsの中身を取り出して処理をする
for (Map.Entry<Integer, String> entry: teams.entrySet()) {
// キーの取得
System.out.println(entry.getKey());
// バリューの取得
System.out.println(entry.getValue());
// 改行
System.out.println();
}
}
mapオブジェクトに対して、entrySetメソッドを呼び出すことで、要素を一つずつ取り出すことができます。
それをMap.Entryで受け取って、一つずつ処理を記述することが可能です。
実行結果
1
バルセロナ
2
レアル・マドリー
3
アトレティコ・マドリー
まとめ
まとめにいきましょう。
今回はJavaの拡張for文について解説してきました。
拡張for文は配列やコレクションの要素を一つずつ取り出して処理をしたい時に有効な文法です。
普通のfor文に比べて、シンプルでわかりやすいのが特徴です。
拡張for文が使える場合であれば、可能な限り拡張for文を使用した方が良いと言えるでしょう。
ただ拡張for文ではインデックスの取得ができないなどの問題点もあるので、実装したい処理に応じて処理を分けることが必要になってきます。
Javaは非常に需要が高く、Javaを使える人材は貴重で必要とされるでしょう。
またJavaで開発できる種類が非常に多いため多くの現場で採用されています。
そのため「これからプログラミングを学んでエンジニアになりたい!」という方にはおすすめのプログラミング言語です。
しかしJavaは初心者にとっては少し難しいというのも事実です。
独学に限界を感じている方はプログラミングスクールに参加してみるのが良いかもしれません!
プログラミングスクールであれば、現場経験のある講師に相談したり質問したりすることができる環境が整っているので、独学よりも圧倒的に効率よくプログラミングを学ぶことができます!
Javaが学べるおすすめのプログラミングスクールを紹介した記事があるので、Javaを学んで貴重なIT人材になりたい方はぜひ参考にしてみてください!
コメント