アプリ開発日誌
2021.07.30
Flutter開発のためのDart入門(4)構文
構文
前回のDart入門(3)の投稿に続き、今回もDartについて解説していきます。
今回は構文について解説していきます。
下記の構文を使いプログラムの流れをコントロールします。
if-else文
if
の後に続く()
にbool値を返す条件式を記述することで分岐を実現します。
if (条件式) { trueのときに実行される処理文 ; } else { falseのときに実行される処理文 ; }
条件式がfalse
のときの処理も記述したい場合は、else
の後におこないたい処理文を記述します。
void main() { var age = 18; if (age >= 20) { print('成人'); } else { print('未成人'); } }
実行結果
未成人
for文
一般的なfor文を使い、繰り返し(ループ)処理を記述できます。
for (式1; 式2; 式3) { 処理文 ; }
式1でカウンタ変数の宣言と初期化、式2で条件判定がおこなわれtrue
の場合、処理文が実行されます。
処理文が実行された後、式3でカウンタ変数の更新がおこなわれ、再び式2で条件判定がおこなわれます。
式2の条件判定がfalse
になるまで繰り返され、false
になった時点でfor文が終了します。
void main() { for (var i = 0; i < 5; i++) { print('Counter : $i'); } }
実行結果
Counter : 0 Counter : 1 Counter : 2 Counter : 3 Counter : 4
while, do-while
while文は、指定された条件が成立する(true)
の間、繰り返し処理をおこないます。
while (条件式) { 処理文; //条件がtrueの場合に処理文が実行される }
void main() { int num = 0; while (num < 3) { print('num : $num'); num++; } }
実行結果
num : 0 num : 1 num : 2
do-while文は、はじめにdo
の後の{}
内に処理文を記述します。
その後while
の後の()
内に条件式を記述します。
while文と同様に条件式が(true)
の間は繰り返し処理をおこないます。
条件判定が(true)
である間は繰り返し処理が実行され、条件判定が(false)
になった時点で、do-while文が終了します。
void main() { int num = 0; do { print('num : $num'); num++; } while (num < 3); }
実行結果
num : 0 num : 1 num : 2
break
繰り返しを停止したいときはbreak
を使用します。
void main() { int num = 0; while (num < 5) { if (num == 3) { break; } print('num : $num'); num++; } }
実行結果
num : 0 num : 1 num : 2
continue
繰り返しをスキップするにはcontinue
を使用します。
void main() { for (var i = 1; i < 8; i++) { if ((i % 3) == 0) { print('Skip'); continue; } print('Counter : $i'); } }
実行結果
Counter : 1 Counter : 2 Skip Counter : 4 Counter : 5 Skip Counter : 7
switch
switch文は()
カッコ内の引数と、case
で指定した値を==
で比較し、一致した場合、case
以降に記述した処理文を実行します。
一致しない場合は、次のcase
の値と比較します。
一致しない場合の処理を記述するには、default
を使用します。
case
に記述した処理文を実行した後、switch文を抜けたい場合は、break
を記述します。
break文がない場合は、次のcase
に記述した処理文も続けて実行されます。
void main() { var lang = 'Dart'; // var lang = 'C#'; switch (lang) { case 'Swift': print('Swift'); break; case 'Kotlin': print('Kotlin'); break; case 'Dart': print('Dart'); break; default: print('unknown'); } }
実行結果
Dart
assert
assert()
はアサーション文と言い、プログラムのテストに役立ちます。
()
カッコ内の条件式がtrue
の場合は何も起きず、プログラムは何事もなく動作し続けます。
しかし、アサーションの条件がfalse
と評価された場合はAssertionError
となり、プログラムが中断されます。
void main() { var value = true; print('before assert : $value'); assert(value); print('after assert : $value'); value = false; print('before assert : $value'); assert(value); print('after assert : $value'); // エラー }
実行結果
before assert : true after assert : true before assert : false Unhandled exception: ~ // エラー表示
※DartPad上ではアサーション文は無視されます。
Flutterの開発環境を構築すればDartSDKがインストールされ、ターミナルからコンパイルして確認できます。
コンパイル時に --enable-asserts
オプションを指定しコンパイルすると、アサーションが有効になります。
dart --enable-asserts file_name.dart
Flutterの開発環境構築はこちらの記事を参照してください。
DartSDKを個別にインストールしたい場合は、こちらを参照してください。
次回は例外について投稿する予定です。