Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
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
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.
