記事の内容
この記事では、Dart言語で使うforループとforEachの使い方を説明します。
簡単なサンプルも書くので、これさえ読めばループ処理はバッチリです!
for
forの基本的な動作
for文は、決められた回数だけ処理を繰り返す場合に使います。
そのfor文には、(初期値; 条件式; 初期値の増減値)を与えて使います。
初期値の最初の値には、「0」を使うことが一般的です。
初期値に、「1」を使わないようにしましょう。
main() { | |
for (var $i = 0; $i < 5; $i++) { | |
print('for start-------'); | |
print($i); | |
} | |
// for start------- | |
// 0 | |
// for start------- | |
// 1 | |
// for start------- | |
// 2 | |
// for start------- | |
// 3 | |
// for start------- | |
// 4 | |
for (var $i = 0; $i < 6; $i = $i + 2) { | |
print('for start-------'); | |
print($i); | |
} | |
// for start------- | |
// 0 | |
// for start------- | |
// 2 | |
// for start------- | |
// 4 | |
var array_1 = [1, 3, 6, 9, 12]; | |
var arrLength = array_1.length; | |
// 初期値; 条件式; 初期値の増減値 | |
// 初期値を0にして、配列の長さ分だけループを回します。 | |
for (var $i = 0; $i < arrLength; $i++) { | |
print('for start-------'); | |
print($i); | |
print(array_1[$i]); | |
} | |
// for start------- | |
// 0 | |
// 1 | |
// for start------- | |
// 1 | |
// 3 | |
// for start------- | |
// 2 | |
// 6 | |
// for start------- | |
// 3 | |
// 9 | |
// for start------- | |
// 4 | |
// 12 | |
var array_2 = ['apple', 'orange', 'mango']; | |
arrLength = array_2.length; | |
for (var $i = 0; $i < arrLength; $i++) { | |
print('for start-------'); | |
print($i); | |
print(array_2[$i]); | |
} | |
// for start------- | |
// 0 | |
// apple | |
// for start------- | |
// 1 | |
// orange | |
// for start------- | |
// 2 | |
// mango | |
} |
breakとcontinue
continueは、その時のループ処理を飛ばして、次のループ処理にいきます。
breakは、全ループ処理を終了させます。
main() { | |
// 偶数の場合は$iが表示されていません | |
for (var $i = 0; $i < 6; $i++) { | |
print('for start-------'); | |
if ($i % 2 == 0) continue; | |
print($i); | |
} | |
// for start------- | |
// for start------- | |
// 1 | |
// for start------- | |
// for start------- | |
// 3 | |
// for start------- | |
// for start------- | |
// 5 | |
// 偶数だけを表示するコードは、以下のようにも書くことができます。 | |
var array_1 = [1, 2, 3, 4, 5, 6]; | |
array_1.where((v) => v % 2 == 0).forEach((v) => print(v)); | |
// 奇数だけを表示するコードは、以下のようにも書くことができます。 | |
array_1.where((v) => v % 2 == 1).forEach((v) => print(v)); | |
// $iが3以降は、ループ処理が行われていません | |
for (var $i = 0; $i < 6; $i++) { | |
print('for start-------'); | |
if ($i == 3) break; | |
print($i); | |
} | |
// for start------- | |
// 0 | |
// for start------- | |
// 1 | |
// for start------- | |
// 2 | |
// for start------- | |
} |
forEach
forEachも繰り返し処理ですが、配列、連想配列(オブジェクト)、Map、Setといった様々なデータ型で使うことができます。
また。引数に関数を入れて、値に対して自分がしたい操作をすることができます。
ただし、forEachの中では、breakを使うことができません。
main() { | |
// ListでforEach | |
var list = [1, 3, 6, 9, 12]; | |
list.forEach((value) { | |
print(value * 2); | |
}); | |
// 2 | |
// 6 | |
// 12 | |
// 18 | |
// 24 | |
// MapでforEach | |
var fruits = { 'apple':100, 'orange': 200, 'mango': 300 }; | |
fruits.forEach((key, value){ | |
print(key); | |
print(value); | |
}); | |
// apple | |
// 100 | |
// orange | |
// 200 | |
// mango | |
// 300 | |
// SetでforEach | |
Set numberSet = new Set.from([1, 2, 3, 1, 2, 3, 4]); | |
numberSet.forEach((value) { | |
print(value * 2); | |
}); | |
// 2 | |
// 4 | |
// 6 | |
// 8 | |
} |