スタッフブログ

STAFF BLOG

アプリ開発日誌

2021.07.30

Flutter開発のためのDart入門(4)構文

Dart_programming_language_logo

構文

前回の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を個別にインストールしたい場合は、こちらを参照してください。

次回は例外について投稿する予定です。

BACK

お問合せ

イーディーエーに興味をお持ちいただいて
ありがとうございます!
スマホアプリに関するご相談、
お見積りや弊社へのご質問など、
お気軽にお問い合わせください。
担当者より折り返しご連絡させていただきます。

    お名前必須
    会社名
    メールアドレス必須
    電話番号必須
    お問合わせ種別必須
    お問合わせ内容必須

    アンケートにご協力ください。
    弊社サイトへはどのようにしてアクセスされましたか?

    個人情報のお取扱いに関する同意事項

    1.事業者の氏名又は名称

    株式会社イーディーエー

    2.個人情報保護管理者の氏名又は職名、所属及び連絡先

    個人情報保護管理者 小宮 保人
    Mail:[email protected]

    3.取得した個人情報の利用目的

    当フォームで取得した個人情報は、お問い合わせに関する回答のために利用し、目的外利用はいたしません。

    4.弊社が取得した個人情報の第三者への委託、提供について

    弊社は、ご本人に関する情報をご本人の同意なしに第三者に委託または提供することはありません。

    5.個人情報保護のための安全管理

    弊社は、ご本人の個人情報を保護するための規程類を定め、従業者全員に周知・徹底と啓発・教育を図るとともに、その遵守状況の監査を定期的に実施いたします。
    また、ご本人の個人情報を保護するために必要な安全管理措置の維持・向上に努めてまいります。

    6.個人情報の開示・訂正・利用停止等の手続

    ご本人が、弊社が保有するご自身の個人情報の、利用目的の通知、開示、内容の訂正、追加又は削除、利用の停止、消去及び第三者への提供の停止を求める場合には、下記に連絡を頂くことで、対応致します。

    株式会社イーディーエー 個人情報お問合せ窓口
    〒106-0032 東京都港区六本木7丁目14番23 ラウンドクロス六本木4F
    TEL:03-5422-7524 FAX:03-5422-7534
    Mail:[email protected]

    7.ご提供いただく情報の任意性

    個人情報のご提供は任意ですが、同意を頂けない場合には、第3項にあります利用目的が達成できない事をご了承いただくこととなります。

    8.弊社Webサイトの運営について

    弊社サイトでは、ご本人が弊社Webサイトを再度訪問されたときなどに、より便利に閲覧して頂けるよう「クッキー(Cookie)」という技術を使用することがあります。これは、ご本人のコンピュータが弊社Webサイトのどのページに訪れたかを記録しますが、ご本人が弊社Webサイトにおいてご自身の個人情報を入力されない限りご本人ご自身を特定、識別することはできません。
    クッキーの使用を希望されない場合は、ご本人のブラウザの設定を変更することにより、クッキーの使用を拒否することができます。その場合、一部または全部のサービスがご利用できなくなることがあります。