プログラム学習室 http://studyhallweb.com/

Dart言語: 分岐処理

if, switch

分岐は if または switch を使用。
switch の条件比較 case は等しいか否かしか判断しない。
case の後に < や > などの条件は入れられない。
// 分岐のサンプル
void main() {
  List<int>n = [0,1,2];
  int i;

  // if
  print('if -------------------------');
  for (i = 0; i < 3; i++) {
    if (i == n[0]) {
      print('One');
    } else if (i == n[1]) {
      print('Two');
    } else {
      print('Three');
    }
  }

  // switch
  print('switch ---------------------');
  for (i = 0; i < 3; i++) {
    switch (i) {
      case 0:
        print('0');
        break;
      case 1:
        print('1');
        break;
      default:
        print('2');
    }
  }
  // switch
  print('switch variation ------------');
  for (i = 0; i < 3; i++) {
    switch (i) {
      case 0:
      case 1:
        print('0 and 1'); // 0 と 1 のとき
        break;
      default:
        print('2');
    }
  }
}       

このソースの実行結果
if -------------------------
One
Two
Three
switch ---------------------
0
1
2
switch variation ------------
0 and 1
0 and 1
2
				

expr1 ? expr2 : expr3

exprt1 が ture であれば、expr2 を実行、exprt1 が false であれば exprt3 を実行
簡単な if文の代わりに使用可能
void main() {
  for (int i = 0; i < 4; i++) {
    int ans = i % 2;
    String s;

    // ans が 1 ならば odd をセット、そうでなければ even をセット
    ans == 1 ? s = 'odd' : s = 'even';

    print('$i % 2 = $ans : $s mumber');
  }
}				

このソースの実行結果
0 % 2 = 0 : even mumber
1 % 2 = 1 : odd mumber
2 % 2 = 0 : even mumber
3 % 2 = 1 : odd mumber