三項演算子で条件分岐を1行に!


「もし〇〇なら A、そうでなければ B」というとき

普通の書き方:

String message;
if (isLoggedIn) {
  message = 'ようこそ!';
} else {
  message = 'ログインしてください';
}

5行も必要…
Dartのスマートな書き方:

String message = isLoggedIn ? 'ようこそ!' : 'ログインしてください';

たった1行! 😊
読み方: 「isLoggedIn が true なら『ようこそ!』、false なら『ログインしてください』」

Flutter の UI でめちゃくちゃ使う!
条件によって色を変える:

Container(
  color: isPaid ? Colors.green : Colors.red,  // 支払い済みなら緑、未払いなら赤
  child: Text('月謝'),
)

条件によってアイコンを変える:

Icon(
  isFavorite ? Icons.favorite : Icons.favorite_border,  // お気に入りならハート、そうでなければ枠線
  color: isFavorite ? Colors.red : Colors.grey,
)

数字でも使える:

// 大人料金 vs 子供料金
int price = age >= 18 ? 1000 : 500;

// 割引適用
double total = isMember ? price * 0.9 : price;  // 会員なら10%オフ

入れ子もできる
(でも、あまり複雑にすると読みにくいので、普通の if-else を使ったほうがいい場合もあります 😅)

String status = score >= 90 ? '優秀' : 
                score >= 70 ? '良好' : 
                score >= 50 ? '普通' : '要努力';

条件にたいして

条件 ? true の時の値 : false の時の値
 ↑   ↑              ↑
疑問  なら           それ以外

まとめ

? : を使うと、if-else が1行でスッキリ書けます! まるで「これ? それともあれ?」と選ぶような感じです