アプリ開発日誌
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を個別にインストールしたい場合は、こちらを参照してください。
次回は例外について投稿する予定です。