C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#でFizzBuzzを実装する方法【初心者向けサンプルコード付き】

FizzBuzzは、プログラミング学習の定番課題として知られている問題です。1から100までの数字を出力し、3の倍数の場合は「Fizz」、5の倍数の場合は「Buzz」、そして3と5の両方の倍数(つまり15の倍数)の場合は「FizzBuzz」と表示します。

以下に、FizzBuzzを実装したC#プログラムの例を示します。

サンプルコード

using System;
namespace FizzBuzzDemo {
    public class example {
        static void Main(string[] args) {
            for (int i = 1; i <= 100; i++) {
                if (i % 3 == 0 && i % 5 == 0) {
                    Console.WriteLine("FizzBuzz");
                } else if (i % 3 == 0) {
                    Console.WriteLine("Fizz");
                } else if (i % 5 == 0) {
                    Console.WriteLine("Buzz");
                } else {
                    Console.WriteLine(i);
                }
            }
        }
    }
}

出力結果

上記のプログラムを実行すると、以下のような出力が得られます。

1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
17
Fizz
19
Buzz
Fizz
22
23
Fizz
Buzz
26
Fizz
28
29
FizzBuzz
31
32
Fizz
34
Buzz
Fizz
37
38
Fizz
Buzz
41
Fizz
43
44
FizzBuzz
46
47
Fizz
49
Buzz
Fizz
52
53
Fizz
Buzz
56
Fizz
58
59
FizzBuzz
61
62
Fizz
64
Buzz
Fizz
67
68
Fizz
Buzz
71
Fizz
73
74
FizzBuzz
76
77
Fizz
79
Buzz
Fizz
82
83
Fizz
Buzz
86
Fizz
88
89
FizzBuzz
91
92
Fizz
94
Buzz
Fizz
97
98
Fizz
Buzz

プログラムの解説

それでは、このプログラムの仕組みを詳しく見ていきましょう。

まず、forループを使って1から100までの数値を順番に生成します。続いて、一連のif文による条件分岐で、現在の数値 i が3で割り切れるか、5で割り切れるか、あるいはその両方で割り切れるかを判定しています。

  • 3でのみ割り切れる場合 →「Fizz」を出力
  • 5でのみ割り切れる場合 →「Buzz」を出力
  • 3と5の両方で割り切れる場合 →「FizzBuzz」を出力
  • いずれの条件にも当てはまらない場合 → 数値をそのまま出力

なお、両方の倍数の判定(i % 3 == 0 && i % 5 == 0)を最初に行っている点がポイントです。もし3の倍数の判定を先に書いてしまうと、15の倍数がすべて「Fizz」として処理され、「FizzBuzz」が一度も表示されなくなってしまいます。該当するコード部分は以下の通りです。

for (int i = 1; i <= 100; i++) {
if (i % 3 == 0 && i % 5 == 0) {
Console.WriteLine("FizzBuzz");
}else if (i % 3 == 0) {
Console.WriteLine("Fizz");
} else if (i % 5 == 0) {
Console.WriteLine("Buzz");
} else {
Console.WriteLine(i);
}
}
  1. C++でAVL木(AVLツリー)を実装する方法:回転操作とサンプルコードを徹底解説

    AVL木とは AVL木(AVL Tree)は、自己平衡型二分探索木(Self-balancing Binary Search Tree)の一種です。すべてのノードにおいて、左部分木と右部分木の高さの差が「1以下」に保たれるという性質を持っています。この平衡条件により、木が片側に偏って成長することを防ぎ、検索・挿入・削除といった操作を常に効率的(O(log n))に行うことができます。 木の回転(Tree Rotation)とは 木の回転とは、要素の順序(ソート順)を崩すことなく木の構造を変更する操作のことです。あるノードを一段上へ移動させ、別のノードを一段下へ移動させることで実現されます。 回

  2. 【C++】STLのset_symmetric_differenceで集合の対称差を実装するプログラム

    本記事では、C++の標準テンプレートライブラリ(STL)に含まれる set_symmetric_difference 関数を使って、2つの集合の「対称差」を求めるプログラムを紹介します。 対称差とは、2つの集合のうち「どちらか一方にだけ存在し、両方には存在しない」要素から構成される集合のことです。 主な集合演算の種類 和集合(Union):どちらか一方に含まれるすべての要素 積集合(Intersection):両方に共通して含まれる要素 対称差(Symmetric Difference / 排他的論理和 XOR):片方にのみ含まれる要素 差集合(Difference / 減算):一方から他方