入門じゃないJava(8)
こんにちは。
今日もJavaを見てみましょう。
前回、前々回と配列を見てきました。
今回も配列です。といっても、今回で(今回こそ)一次元配列を終わらせて、次回からは多次元配列を見ていきましょう。
拡張for文
配列を扱う際には必ずと言っていいほどfor文を利用します。
このfor文を基本for文と呼びます。
もう一つの拡張for文を利用すると配列の走査をきわめて簡潔に実現で
きます。
これは配列の全要素の合計を求めて表示するプログラムです。
class ArraySumForIn { public static void main(String[] args) { double[] a = { 1.0, 2.0, 3.0, 4.0, 5.0 }; for (int i = 0; i < a.length; i++) System.out.printf("a[%d] = %.2f\n", i, a[i]); double sum = 0; for (double i : a) sum += i; System.out.printf("全体の和は%.2fです。\n", sum); } }
×
□
-
実行結果
新しい形式のfor文が出てきましたね。
()の画家のコロン:は"~の中の"という意味です。
そのため、この拡張for文は
このことから、拡張for文は"for-in文"あるいは"for-each文"などとも呼ばれます。
このfor文は以下のように理解します。
配列aの先頭から末尾までの全要素を1つずつ走査します。ループ本体では現在着目している要素をiと表現します。
すなわち、変数iはint型の整数値である"インデックス"を表すのではなく、double型の"走査において着目している要素"を表します。
拡張for文を利用するときには以下のようなメリットがあります。
配列の長さを調べる手間が省ける。
イテレータと同じ方法で走査を行える。
配列を逆順に並び替える
配列の全要素を逆順に並び替えるプログラムを考えてみましょう。
今日はここまでにしましょう。
では!
参考文献
柴田 望洋 (2016) .『新・明解Java入門』196-197