C# program to implement FizzBuzz

The FizzBuzz problem is a classic programming exercise that involves printing numbers from 1 to 100 with specific replacements. If a number is divisible by 3, print "Fizz". If divisible by 5, print "Buzz". If divisible by both 3 and 5, print "FizzBuzz". Otherwise, print the number itself.

This problem tests your understanding of conditional statements, loops, and the modulo operator in C#.

Syntax

The modulo operator % is used to check divisibility −

if (number % divisor == 0) {
   // number is divisible by divisor
}

The logical AND operator && checks multiple conditions −

if (i % 3 == 0 && i % 5 == 0) {
   // divisible by both 3 and 5
}

Using Standard If-Else Approach

The most common approach uses nested if-else statements to check divisibility conditions −

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);
            }
         }
      }
   }
}

The output of the above code is −

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

Using String Concatenation Approach

An alternative approach builds the output string by concatenating "Fizz" and "Buzz" based on divisibility −

using System;

namespace FizzBuzzDemo {
   public class StringConcatExample {
      static void Main(string[] args) {
         for (int i = 1; i <= 30; i++) {
            string output = "";
            
            if (i % 3 == 0) output += "Fizz";
            if (i % 5 == 0) output += "Buzz";
            
            Console.WriteLine(output == "" ? i.ToString() : output);
         }
      }
   }
}

The output of the above code is −

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

Using Switch Expression (C# 8.0+)

Modern C# allows using switch expressions with tuple patterns for a more concise solution −

using System;

namespace FizzBuzzDemo {
   public class SwitchExample {
      static void Main(string[] args) {
         for (int i = 1; i <= 30; i++) {
            string result = (i % 3, i % 5) switch {
               (0, 0) => "FizzBuzz",
               (0, _) => "Fizz",
               (_, 0) => "Buzz",
               _ => i.ToString()
            };
            Console.WriteLine(result);
         }
      }
   }
}

The output of the above code is −

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

How It Works

The FizzBuzz algorithm follows these steps:

  • Check divisibility by both 3 and 5: If i % 15 == 0 or (i % 3 == 0 && i % 5 == 0), print "FizzBuzz".

  • Check divisibility by 3: If i % 3 == 0, print "Fizz".

  • Check divisibility by 5: If i % 5 == 0, print "Buzz".

  • Default case: Print the number itself.

Comparison of Approaches

Approach Readability Performance C# Version
If-Else Chain High Good All versions
String Concatenation Medium Good All versions
Switch Expression High Excellent C# 8.0+

Conclusion

The FizzBuzz problem demonstrates fundamental programming concepts including loops, conditional statements, and the modulo operator. The if-else approach is most commonly used, while string concatenation and switch expressions offer alternative solutions with different readability and performance characteristics.

Updated on: 2026-03-17T07:04:35+05:30

4K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements