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
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 == 0or(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.
