54 lines
1.2 KiB
D
54 lines
1.2 KiB
D
import std.stdio, std.algorithm, std.conv;
|
|
|
|
/// With if-else.
|
|
void fizzBuzz(in uint n) {
|
|
foreach (immutable i; 1 .. n + 1)
|
|
if (!(i % 15))
|
|
"FizzBuzz".writeln;
|
|
else if (!(i % 3))
|
|
"Fizz".writeln;
|
|
else if (!(i % 5))
|
|
"Buzz".writeln;
|
|
else
|
|
i.writeln;
|
|
}
|
|
|
|
/// With switch case.
|
|
void fizzBuzzSwitch(in uint n) {
|
|
foreach (immutable i; 1 .. n + 1)
|
|
switch (i % 15) {
|
|
case 0:
|
|
"FizzBuzz".writeln;
|
|
break;
|
|
case 3, 6, 9, 12:
|
|
"Fizz".writeln;
|
|
break;
|
|
case 5, 10:
|
|
"Buzz".writeln;
|
|
break;
|
|
default:
|
|
i.writeln;
|
|
}
|
|
}
|
|
|
|
void fizzBuzzSwitch2(in uint n) {
|
|
foreach (immutable i; 1 .. n + 1)
|
|
(i % 15).predSwitch(
|
|
0, "FizzBuzz",
|
|
3, "Fizz",
|
|
5, "Buzz",
|
|
6, "Fizz",
|
|
9, "Fizz",
|
|
10, "Buzz",
|
|
12, "Fizz",
|
|
/*else*/ i.text).writeln;
|
|
}
|
|
|
|
void main() {
|
|
100.fizzBuzz;
|
|
writeln;
|
|
100.fizzBuzzSwitch;
|
|
writeln;
|
|
100.fizzBuzzSwitch2;
|
|
}
|