• 締切済み

C#で判断文(三択)の省略形はありますか?

たとえば、 (a == 1) --> flag ="いち" (a == 2) --> flag ="に" (a >= 3) --> flag ="さん" のようにしたい場合、switch文やif文を使わずに flag = (a == 1) ? "いち" : "いち以外"; の三択版のように簡略化できるような書き方はありますか? ご教授いただければ幸いです。

みんなの回答

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

#1の方法ということになりますが、これが「簡略」かと言えば、むしろ複雑になってるように思います。

tangue
質問者

お礼

ありがとうございます。質問の仕方が悪かったかもしれません。 1行(または少ない行)で済む式という意味で質問しました。 でも後から見たり他の人から見たわかりやすさ等を考えると、switch文とかの方がよいのでしょうか。

回答No.1

class Program { static string judge(int a) { return a == 1 ? "いち" : ((a == 2) ? "に" : "そのほか"); } public static void Main() { for ( int i = 0; i <= 3; ++i ) { System.Console.WriteLine("{0}:{1}", i, judge(i)); } } }

tangue
質問者

お礼

なるほど。 : の後にまた式を入れればいいのですね。 早々の回答ありがとうございました!

関連するQ&A

専門家に質問してみよう