Write a C# program to solve FizzBuzz problem

The FizzBuzz problem is a classic programming exercise that tests basic conditional logic and loop implementation. The problem requires printing numbers from 1 to 100 with specific substitutions based on divisibility rules.

Problem Statement

The FizzBuzz problem states that −

  • Display "Fizz" instead of the number for each multiple of 3
  • Display "Buzz" instead of the number for each multiple of 5
  • Display "FizzBuzz" instead of the number for each multiple of both 3 and 5
  • Display the number itself if it's not a multiple of 3 or 5

FizzBuzz Logic Flow Number (1-100) % 3 == 0 && % 5 == 0 % 3 == 0 % 5 == 0 else FizzBuzz Fizz Buzz Number Check conditions from left to right (order matters!)

Using If-Else Statements

The most straightforward approach uses nested if-else conditions. Note that we check for multiples of both 3 and 5 first −

using System;

class FizzBuzzDemo {
   static void Main(string[] args) {
      Console.WriteLine("FizzBuzz from 1 to 30:");
      
      for (int i = 1; i <= 30; i++) {
         if ((i % 3 == 0) && (i % 5 == 0)) {
            Console.Write("FizzBuzz ");
         }
         else if (i % 3 == 0) {
            Console.Write("Fizz ");
         }
         else if (i % 5 == 0) {
            Console.Write("Buzz ");
         }
         else {
            Console.Write(i + " ");
         }
      }
      Console.WriteLine();
   }
}

The output of the above code is −

FizzBuzz from 1 to 30:
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;

class FizzBuzzString {
   static void Main(string[] args) {
      Console.WriteLine("FizzBuzz using string concatenation (1-20):");
      
      for (int i = 1; i <= 20; i++) {
         string result = "";
         
         if (i % 3 == 0) result += "Fizz";
         if (i % 5 == 0) result += "Buzz";
         
         if (result == "") result = i.ToString();
         
         Console.Write(result + " ");
      }
      Console.WriteLine();
   }
}

The output of the above code is −

FizzBuzz using string concatenation (1-20):
1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16 17 Fizz 19 Buzz 

Using Switch Expression (C# 8.0+)

Modern C# versions allow using switch expressions for a more concise solution −

using System;

class FizzBuzzSwitch {
   static void Main(string[] args) {
      Console.WriteLine("FizzBuzz using switch expression (1-15):");
      
      for (int i = 1; i <= 15; i++) {
         string result = (i % 3, i % 5) switch {
            (0, 0) => "FizzBuzz",
            (0, _) => "Fizz",
            (_, 0) => "Buzz",
            _ => i.ToString()
         };
         Console.Write(result + " ");
      }
      Console.WriteLine();
   }
}

The output of the above code is −

FizzBuzz using switch expression (1-15):
1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 

Comparison of Approaches

Approach Pros Cons
If-Else Most readable, works in all C# versions More verbose, multiple conditions
String Concatenation Easily extensible for more divisors String operations are less efficient
Switch Expression Concise, pattern matching Requires C# 8.0+, less intuitive

Conclusion

The FizzBuzz problem demonstrates fundamental programming concepts like loops, conditional statements, and modular arithmetic. The if-else approach is most commonly used due to its clarity, while string concatenation offers flexibility for extensions, and switch expressions provide modern syntax for pattern matching.

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

397 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements