libro
www.tuyano.com
初心者のためのDart 2入門

制御構文をマスターする (3/5)

作成:2018-03-17 08:30
更新:2018-03-17 08:30

■switch-case構文について

ifは、基本的に二者択一の分岐でした。else ifを使うことで更に分岐を増やせますが、そうなるといくつも条件をずらずらと書いていかないといけません。なんとな~く「効率的でないな」という気分になりますね。

ifのように真偽値を条件とするのでなく、例えば、「数値がいくつかによって分岐をしていく」というような仕組みであれば、もっと単純に多数の分岐を作ることができます。それを行うのが「switch-case」という構文です。

・switch-case構文の基本形
switch( チェックする値 ){
  case 値1 :
    ……値1のときの処理……
    break;
  case 値2 :
    ……値2のときの処理……

  ……必要なだけcaseを用意……

  default:
    ……すべて当てはまらないときの処理……
}

switch-case文は、switchの後の()に、チェックする値を用意します。これは値や変数でも構いませんし、それ以外のものでも、「値として扱えるもの」であれば何でも指定できます。

その後の{}内には、「case ○○:」という文を用意していきます。caseの後に値を指定します。switchは、()の値をチェックし、その値のcaseにジャンプをして処理を実行します。

ただし、caseにジャンプはしても、処理実行後に構文を抜ける処理は行なってくれません。このため、caseで実行する処理の最後には、後部を中断する「break;」を用意して、そこでswitch構文を抜けて次に進むようにしておきます。

では、これも利用例を挙げておきましょう。下のリスト欄は、簡単なswitch-case文の利用例です。変数placeの値に応じてswitch-caseでジャンプし、表示を作成しています。placeの値を'jp', us', あるいは他の値に変更して動作を確かめてみましょう。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

void main() {
  var place = 'jp';
  var state;
  switch(place){
    case 'jp':
      state = '日本';
      break;
    case 'us':
      state = '米国';
      break;
    default:
      state = '世界のどこか';
      break;
  }
  print('あなたは、${state}の人ですね。');
}
※関連コンテンツ

「初心者のためのDart 2入門」に戻る