動くコード図鑑技術記事現場の渡り方キャリア論すべての記事About
技術記事

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

バイブス父さん
現役の業務SE
2019年12月3日1 min read
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()));

可読性無視ですね。。笑

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

FizzBuzz1行のコード (csharp)#93309a6c8c59
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を回してるって感じですね!

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

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

この記事のコードと手順は ぜんぶ動作検証済み。 安心して現場で試してくれ。
バイブス父さん

現役の業務SE。C# / SQL Server 保守の現場から、コードも人もキャリアも全部書く。 実体験ベース。

運営者について