ア | イ | ウ | エ | オ |
カ | キ | ク | ケ | コ |
サ | シ | ス | セ | ソ |
タ | チ | ツ | テ | ト |
ナ | ニ | ヌ | ネ | ノ |
ハ | ヒ | フ | ヘ | ホ |
マ | ミ | ム | メ | モ |
ヤ | ユ | ヨ | ||
ラ | リ | ル | レ | ロ |
ワ | ヰ | ヴ | ヱ | ヲ |
ン |
A | B | C | D | E |
F | G | H | I | J |
K | L | M | N | O |
P | Q | R | S | T |
U | V | W | X | Y |
Z | 数字 | 記号 |
殆どの高級言語に存在する予約語の一つで、繰り返し処理を記述をするために用いる。
プログラミング言語ごとに仕様が異なりそれぞれに特徴がある。
ループの条件(または終了判定の式)はほぼ例外がなくあり、それ以外は、ループ開始前の初期化、あるいはループごとの処理を集中して記述することができることがある。
C/C++のfor文は次の構文を取る。
for (変数 = 初期値; 条件; ループごとの処理) { /* ループ処理 */ }
三つの要素がありセミコロン;で区切るが、各々省略することができる。
例えば0から9までのループであれば、次のように書くことができる。
for (i = 0; i < 10; ++i) { printf("%d\n", i); }
中央にある i < 10 の部分は、i <= 9 でも動きは同じになる。
通常は1ずつ増やすので、3番目の要素は ++i または i++ と書くことになる。Cではどちらで書いても同じだが、C++の場合は ++i のように前置インクリメントとすると効率があがる(高速に動作する)。
Kotlinの場合、forは多機能である。
他のプログラミング言語と同様に指定した数の範囲内でループする機能はもちろん、ListやMapの展開をする機能があり便利に使うことができる。
Kotlinでは、forの他に、forEach、while、do〜while構文でループを構成できる。
指定した数の範囲内でループさせる場合、基本は次の通り。
for (変数 in 条件) { /* ループ処理 */ }
条件の書き方は様々な方法があり、基本はRange型と呼ばれる記法だが、until、step、downToといった書き方もできる。
基本的なRange型の書き方は次の通りで、下の式は0と5を含めて、0〜5までループする。
for (i in 0..5) { /* ループ処理 */ }
A until B の構文を条件に用いる方法もある。A until B の構文は、Aは含むがBは含まない。次は0から4までループすることになる。
for (i in 0 until 5) { /* ループ処理 */ }
A downTo B の構文を条件に用いる方法もある。A downTo B の構文は、AとBの双方を含み、デクリメントしてゆく。このためAにはBよりも大きな値を指定する必要がある。
for (i in 5 downTo 0) { /* ループ処理 */ }
この場合、5、4、3、2、1、0、となる。
通常は1ずつ増えるが、step を用いて変えることができる。
for (i in 0..9 step 2) { /* ループ処理 */ } for (i in 0 until 10 step 2) { /* ループ処理 */ }
どちらの場合も2ずつ進むため、0、2、4、6、8と増える。8の次は10になるが、ループ条件から外れるため実行されず、ループが終了する。
untilの場合はstepに指定した値ずつインクリメントされ、downToの場合はstepに指定した値ずつデクリメントされる。
Kotlinの場合、次のように書くと、Listを展開してくれる。
for (変数 in List) { /* ループ処理 */ }
ループするごとに、変数にはListの要素が入る。
直接要素を得ず、インデックスを得る方法もある。その場合は、indicesを使用する。
for (index in list.indices) { val value = list[index] }
インデックスは0から順番の整数である。
インデックスと要素を両方同時に得る方法もある。その場合は、withIndexを使用する。
for ((index, value) in list.withIndex()) { /* ループ処理 */ }
インデックスは0から順番の整数である。
Kotlinの場合、次のように書くと、Mapを展開してくれる。
for ((Key変数, Value変数) in Map) { /* ループ処理 */ }
ループするごとに、Mapの要素であるKeyとValueがそれぞれに変数に入る。
コメントなどを投稿するフォームは、日本語対応時のみ表示されます