5分でわかるC#のプチ講座#03
前回はループ処理であるfor文の書き方について解説しました。
※もし今の時点で覚えてないことがあった場合は
このまま読み進めるのではなく、一度戻って確認することを
お勧めします。わからないことや、
なんとなくの理解しかしていないものをそのままにしていると、
講座を見ても何をやっているのかが理解できなくなってしまいます。
今回の講座は、「FizzBuzz問題」です。
前回、前々回解説したif文、for文を使ってこの問題の解き方を解説します!
【FizzBuzz問題とは】
元は単純なパーティゲームで、
– 2人以上のプレイヤーが1から順番に数字を発言していく
– 3で割り切れるときは「Fizz」を発言
– 5で割り切れるときは「Buzz」を発言
– 両方で割り切れるときは「FizzBuzz」を発言
– 間違えた人から脱落
基本は上記のようなルールのゲームです。
この問題は、プログラマーの力量を問う問題です。
【解き方】
– 剰余演算子を使用せずに書く
– 再帰呼び出しを用いる
– 配列を準備しそれらにmap関数を用いる
など人によって書き方は様々です。
そのほかコードを短縮する工夫が見られます。
下記のコードが単純だと個人的には思っています。
for (int i = 1; i <= 100; i++) {
if (i % 3 == 0 && i % 5 == 0)//15の倍数
Console.WriteLine("FizzBuzz");
else if (i % 3 == 0)
Console.WriteLine("Fizz");
else if (i % 5 == 0)
Console.WriteLine("Buzz");
else // iが3の倍数でも5の倍数でもない
Console.WriteLine(i);
}
1.for文で100回繰り返す
for (int i = 1; i <= 100; i++) {
}
2.論理演算子を使って15の倍数の場合の処理
if (i % 3 == 0 && i % 5 == 0)
3.剰余演算子を使う
else if (i % 3 == 0), else if (i % 5 == 0)
4.上記以外の場合の処理
Console.WriteLine(i);
今回は最もメジャーなプログラミング問題である
FizzBuzzについて取り上げさせていただきました。
比較的基礎的な問題ですが、
調べてみると様々な書き方も存在したりします。
色々な書き方を調べてみてくださいね。
このように、プログラミングは文法を組み合わせるといった
工夫もしながら書いていきます。
この講座を見て終わりではなく、どんどんアウトプットしていってくださいね!