Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaのforループと拡張for(for-each)ループの使い方を徹底解説

プログラミングにおけるループは、何度も繰り返される類似のタスクを自動化するために使われます。たとえば、レストランのランチメニュー全品の価格と料理名を結合するプログラムを作る場合、ループを使えばこの作業を効率的に自動化できます。

Javaでは、forループは特定のコードブロックを指定した回数だけ繰り返し実行するために使用されます。whileループが条件がfalseになるまで実行され続けるのに対し、forループは決められた反復回数だけ実行される点が特徴です。

この記事では、Javaにおけるforループとfor-eachループの使い方を、実際のコード例とともにわかりやすく解説します。

Javaのforループとは

100個の要素を持つ配列の中身をコンソールに出力したい、あるいは店舗の商品価格をすべて5セント値上げしたい——このような場面では、手作業ではなくループを使うのが賢明です。

Javaのforループは、特定のタスクを複数回実行するために使われます。基本的な構文は以下の通りです。

for (初期化; 条件式; 更新処理) {
	// 実行するコード
}

ループは次の3つの要素で構成されています。

  • 初期化(initialization):ループが何回実行されたかを追跡する変数を初期化する文です。
  • 条件式(expression):forループが評価する条件です。trueまたはfalseを返すboolean式である必要があります。
  • 更新処理(updateCounter):コードブロックの実行後に呼び出され、初期化した変数を更新します。

これら3つの要素はすべて必須です。

それでは、具体的な例でforループの動作を確認してみましょう。小学3年生が掛け算(10の段)を練習できるようサポートするプログラムを作るとします。このプログラムは、今後の算数テストに向けた復習に役立ちます。

1×10、2×10…と一つずつ計算する代わりに、「for」ループを使えば10の段の各値をまとめて計算できます。1から10までの10の段を計算するコードは次のようになります。

public class TimesTable {
	public static void main(String[] args) {
		for (int i = 1; i <= 10; ++i) {
			int answer = i * 10;
			System.out.println(i + " x 10 is " + answer);
		}
	}
}

このコードを実行すると、次の出力が得られます。

1 x 10 is 10
2 x 10 is 20
3 x 10 is 30
4 x 10 is 40
5 x 10 is 50
6 x 10 is 60
7 x 10 is 70
8 x 10 is 80
9 x 10 is 90
10 x 10 is 100

ご覧のとおり、プログラムは10×10までの10の段すべての値を正しく計算できました。ここから、コードがどのように動作しているのかを順番に見ていきましょう。

まず、TimesTableというクラスを宣言し、このプログラムのコードを格納しています。次に、forループを作成し、ループ内のコードを10回実行しています。このforループの3つの構成要素は以下の通りです。

  • int i = 1:カウントを1から開始することを示します。
  • i <= 10:変数iの値が10以下の場合にのみforループを実行することを示します。
  • ++iforループの実行後に変数iに1を加算します。これはインクリメントカウンタと呼ばれます。

その後、計算問題とその答えを含む文を出力します。出力は「[カウンタの値] x 10 is」という形式で、続けて答えが表示されます。

Javaの拡張forループ(for-each)とは

配列やコレクションを扱う場合、その内容を反復処理するためにもうひとつのforループを使用できます。それが「for-eachループ」(拡張forループ)です。

for-eachループの構文は以下の通りです。

for (データ型 item : コレクション) {
	// 実行するコード
}

for-eachループには3つの要素があります。

  • データ型(dataType):itemが扱うデータの型です。
  • item:コレクション内の単一の要素を受け取る変数です。
  • コレクション(collection):forループが反復処理する対象となる配列またはコレクション変数です。

for-eachループは、コレクション内の各要素を順に取り出してitem変数に格納し、ループ本体内のコードを実行します。具体例でその動作を確認してみましょう。

あなたが喫茶店を経営していて、フラッシュセールのためにすべてのコーヒーの価格を25セント値下げしたいとします。各コーヒーの価格を含むリストがあり、それぞれの価格から25セントを差し引きたい状況です。

これは次のようなコードで実現できます。

public class ReducePrices {
	public static void main(String[] args) {
		double[] prices = {2.50, 2.75, 3.00, 2.75, 2.75, 2.30, 3.00, 2.60};
		for (double i : prices) {
			double new_price = i - 0.25;
			System.out.println("The new price is " + new_price);
		}
	}
}

このコードを実行すると、次の出力が得られます。

The new price is 2.25
The new price is 2.5
The new price is 2.75
The new price is 2.5
The new price is 2.5
The new price is 2.05
The new price is 2.75
The new price is 2.35

ご覧のとおり、プログラムはすべてのコーヒーの価格を25セント値下げしました。これで、フラッシュセール向けに価格を変更するために必要なデータが揃いました。

コードの流れを順番に確認していきましょう。まず、ReducePricesというクラスを宣言し、この例のコードを格納しています。次に、コーヒーの価格を格納するpricesという配列を宣言します。この配列はdouble型(小数点数)の配列として宣言されています。

その後、prices配列の各要素を走査するforeachループを作成します。配列の各要素に対して、プログラムはコーヒーの価格から25セントを差し引き、値下げ後の価格をnew_price変数に代入します。そして、「The new price is 」という文字列に続いて新しい価格を出力します。

まとめ

forループは、Javaでコードブロックを指定した回数だけ実行するために使用されます。一方、for-eachループは、配列やコレクション内の各要素に対してコードブロックを実行するために使用されます。

この記事では、Javaにおけるforループとfor-eachループの使い方を解説し、それぞれの実際のコード例を挙げながら、その動作をステップごとに確認しました。

これで、Javaのforループとfor-eachループをプロのように使いこなすための基礎知識が身につきました。ぜひ実際のコードで試してみてください!

  1. Bashのforループコマンドの使い方を徹底解説!自動化の第一歩

    仕事でも家庭でも、テクノロジーを活用して生活を楽にする最良の方法の一つが「自動化」です。スクリプトや定时実行ジョブでタスクを自動化すれば、時間・手間・ストレスを大幅に節約できます。しかし、何から始めればよいのか分からないという方も多いはず。この記事では、IT自動化の基礎となるツールであるBashのforループコマンドの使い方を、初心者にも分かりやすく解説します。 テスト環境の準備 まず必要なのは、動作するBashの環境です。BashはLinux、Unix、BSD、macOSのターミナルにおけるデフォルトシェルです(zshを使用している場合を除く)。現在どのシェルを実行しているか確認するに

  2. Windows 10でWGETをダウンロード・インストール・使う方法を徹底解説

    ウェブサイトの重要なデータを、大事な場面で失ってしまったことはありませんか?想像するだけでも恐ろしいですよね。Linuxを使ったことがある方なら、WGETというツールの名前を聞いたことがあるかもしれません。実は、WGETはWindowsでも利用できるのです。GNUプロジェクトがWindows 10向けの互換バージョンを提供してくれているおかげです。この記事では、Windows 10用WGETのダウンロード方法とインストール手順をわかりやすく解説します。さらに、実際のコマンド例を交えながらWGETの使い方まで丁寧にご紹介するので、最後まで読めばWGETに関する知識をしっかり身につけられます。