【Flutter/Dart】for文の使い方|for/for-in/forEach

for loop
スポンサーリンク

for文

for statement

for文とは、条件式で指定した条件回数を満たすまで処理を続けるループ処理のことを呼びます。

定義

//定義
for(初期化式; 条件式; 変化式){
  (実行したい処理)
}
//例
void main() {
  for (var i = 0; i < 10; i++) {
    print(i);
  }
  print('ループから脱出');
}

// 0~9 が順に出力された後に「ループから脱出」が出力

for文を定義するには上の例のように、初期化式、条件式、変化式の3つを指定する必要があります。

  • 初期化式:if文が実行される最初に1度だけ実行される処理
  • 条件式:ループ処理の終了条件を比較演算子で定義
  • 変化式:初期化式で宣言した数を変化させ、条件式を満たす式を定義

注意すべき点は、条件式を満たせるように初期化式と、変化式を定義することです。仮に条件式を満たせなかった場合、無限ループになり永遠とif文で定義した処理をし続けます。

>>【Flutter/Dart】演算子の種類と使い方

for-in文

for-in statement

for-in文を使えば、ListやSetに格納されている全てのvalue(データ)をindex0から順に取得し、取得したvalueを使ってプログラムを実行できます。

>>【Dart】Listの基本的な使い方
>>【Dart】Setの基本的な使い方

定義

//定義
for (var 変数 in List/Set){
  (実行したい処理)
}
//例(Listの場合)
void main() {
  List<String> mixFruit = ['apple', 'banana', 'grape', 'orange'];
  for (var fruit in mixFruit) {
    print(fruit);
  }
  print('Loopから脱出');
}

//「apple」「banana」「grape」「orange」「Loopから脱出」の順に出力

forEach文

forEach文を使えば、宣言したList, Set, Mapなどに格納されている全てのvalueやkeyをindex0から順に取得し、取得したvalueを使ってプログラムを実行できます。また、forEach文はList, Set, Mapのメソッドとして使用します。

>>【Dart】Mapの基本的な使い方
>>【Dart】クラスの基本 Part1|プロパティ/コンストラクタ/メソッド 

定義(List/Setの場合)

//定義
List/Set名.forEach((変数){
    (実行したい処理)
  }
)
//例(Listの場合)
List<String> mixFruit = ['apple', 'banana', 'grape', 'orange'];

mixFruit.forEach((fruit){
    print(fruit);
  }
);
print('Loopから脱出');

 //「apple」「banana」「grape」「orange」「Loopから脱出」の順に出力

forEach文(メソッド)を使用する際、引数にコールバック関数を使用します。

>>【Flutter/Dart】コールバック関数と無名関数の使い方

定義(Mapの場合)

//定義
List/Set名.forEach((変数key,変数value){
    (実行したい処理)
  }
)
//例
void main() {
  Map<String, int> ages = {
    'Alex': 18,
    'Ben': 15,
    'Charlie': 25,
  };
  ages.forEach((name, age) {
    print("${name} is ${age} years old");
  });
  print('Loopから脱出');
}

//出力
//Alex is 18 years old
//Ben is 15 years old
//Charlie is 25 years old
//Loopから脱出

List, Set同様にMapでもforEach文を使用できます。Mapの場合、コールバック関数の引数にkeyとvalueの順で2つの変数を代入します。

関数にもforEach文を使える

//例(Listの場合)
void main() {
  List<String> mixFruit = ['apple', 'banana', 'grape', 'orange'];
  mixFruit.forEach(fruitName);
} //「apple」「banana」「grape」「orange」の順に出力

void fruitName(String name){
  print(name);
}

forEach文に関数も使用できます。

タイトルとURLをコピーしました