Dart入門!switch文の書き方・使い方についてわかりやすく解説!【Flutter】

【PR】このページには広告が含まれることがあります。

条件分岐はif文!Dartマスターに一歩近づいたぞ~!

条件分岐はif文だけだと思っているようだね?

なん…だと…っ!?

じゃあここでは条件分岐のひとつ、switch文について学んでいこう!

ここでは条件分岐のひとつ、switch文について解説していきます!
前回のif文の記事はこちら!

目次

【Dart】switch文とは

前回はif文の書き方を学びました。これで「もし~なら」という表現ができますね。
ではこのケースではどうでしょう。

aが0の時は〇〇、aが1の時は〇〇、aが2の時は〇〇、aが3の時は〇〇、といった場合どうしますか?

こうじゃい!

Dart-switch文の必要性

うーん、できてるんだけどまどろっこしいよね。

これをもう少しすっきり書くことはできないでしょうか。
そこでswitch文の登場です!上記のようにelse-if文をつなげずとも複数の比較ができる構文です!

上記の例をswitch文ですっきり書いてみましょう!

Dart-switch文

おおっ!?圧倒的に見やすくなったぞ!

複数の条件で分岐する場合、switch文を書くことでif文よりもみやすく書けるケースがあります!

【Dart】switcu文の書き方

Dart言語でのswitch文の書き方は以下のようになります。

switch(式){
   case 値1:
      // 式と値1が等しい場合の処理
      break;

   case 値2:
      // 式と値2が等しい場合の処理
      break;

   ~必要な数だけ繰り返す~

   default:
      // どのcase文とも等しくなかった時の処理
}

このdefaultは何?

default文はcase文のどの値とも一致しなかった場合に実行される個所だよ!必要ない場合は省略もできるんだ。

先ほどのコードにdefault文を追加したものがこちらになります。

Dart-switch文(defaultあり)

break文とフォールスルー

case文の最後に入っているbreakはどういう意味なの?

break文はそこで処理を抜けるという意味だよ。つまりbreak文に差し掛かったらswitch文は終了する、ということだね。

ということはbreak文はcase文の最後に必ず必要なのかな?

それが必ずしもそうしなければならないというわけでもないんだ。

break文をかかないとどうなるでしょう?Dart言語では、

  • case文に処理がある場合、case文の中の処理が終わるとswitch文を抜ける(break文を書いたときと同じ)
  • case文に処理がない場合、フォールスルーが発生する

という処理の流れになります。

フォールスルー…なんかかっこよくてムズい言葉がでてきたな…。

フォールスルーとは、break文を書かないことでそこでswitch文を終わらせず、次の処理(case文)も走らせてしまうことです。例を挙げて見ましょう。

Dart-switch文フォールスルー

変数aが0の場合、処理は何も書かれていません。しかし、break文も書かれていません。
するとaが0だった時の処理は続けて「case 1:」の処理も行います。
つまり、フォールスルーを用いることで「aが0か1」の場合の処理をまとめて書くことができます。

意図的にフォールスルーを利用する時以外は必ずbreak文を書くようにしよう。バグや不具合の元になるからね。

switch文で様々な条件分岐を!

switch文を使えば視覚的にもみやすい条件分岐が書けそうだね!

if文よりも比較方法が限定されるけど、switch文が使える場合はこちらを使うと綺麗に書けるケースもあるよ!

いろいろ知識が増えてきてやる気スイッチオン!

■参考文献

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

目次