FizzBuzz問題が1行で書けたのでその解説

みなさんこんにちは!ひろぽんです!

最近色々ありまして、Javascript⇒Boorstrap⇒Sass⇒Jqueryといろいろ渡り歩き、最終的にやっぱりC#が面白いとなり、C#をずーーーとやっています。

そこで勉強がてらC#でかの有名なFizzBuzzをやってみようと思いました。

ですが普通にFizzBuzzやってしまうと面白くない。多分5分でやっつけます。

なのでネスト無し。1行でFizzBuzzを表現!という条件のもとやってみたところ。。

10分でクリアしたので、今回はそのコードの全貌を解説していきたいと思います。

目次

FizzBuzz1行のコード

            Enumerable.Range(1, 100).ToList().ForEach(num =>Console.WriteLine(num % 5 == 0 && num % 3 == 0 ? "FizzBuzz": num % 5 == 0 ? "Fizz": num % 3 == 0 ? "Buzz": num.ToString()));

可読性無視ですね。。笑

これだとさすがに読みにくいので改行をしてみました。

namespace Linq
{
    internal class Program
    {
        public static void Main(string[] args)
        {
            Enumerable.Range(1, 100).
                ToList().
                ForEach(num =>
                    Console.WriteLine(
                        num % 5 == 0 && num % 3 == 0 ? "FizzBuzz" 
                        : num % 5 == 0 ? "Fizz" 
                        : num % 3 == 0 ? "Buzz" 
                        : num.ToString()));
        }
    }
}

Enumerableで1から100までの数字のリストを作って、それに対し、LINQのForeachを回してるって感じですね!

条件部分は三項演算子で書きました。

割とシンプルにできた気がするのは私だけ??

この記事が気に入ったら
いいねしてね!

どんどんシェア待ってるぜ!!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次