RosettaCodeData/Task/FizzBuzz/D/fizzbuzz-1.d

54 lines
1.2 KiB
D
Raw Permalink Normal View History

2015-02-20 00:35:01 -05:00
import std.stdio, std.algorithm, std.conv;
2013-04-10 16:57:12 -07:00
2015-02-20 00:35:01 -05:00
/// With if-else.
void fizzBuzz(in uint n) {
foreach (immutable i; 1 .. n + 1)
2013-04-10 16:57:12 -07:00
if (!(i % 15))
2015-02-20 00:35:01 -05:00
"FizzBuzz".writeln;
2013-04-10 16:57:12 -07:00
else if (!(i % 3))
2015-02-20 00:35:01 -05:00
"Fizz".writeln;
2013-04-10 16:57:12 -07:00
else if (!(i % 5))
2015-02-20 00:35:01 -05:00
"Buzz".writeln;
2013-04-10 16:57:12 -07:00
else
2015-02-20 00:35:01 -05:00
i.writeln;
2013-04-10 16:57:12 -07:00
}
2015-02-20 00:35:01 -05:00
/// With switch case.
void fizzBuzzSwitch(in uint n) {
foreach (immutable i; 1 .. n + 1)
switch (i % 15) {
2013-04-10 16:57:12 -07:00
case 0:
2015-02-20 00:35:01 -05:00
"FizzBuzz".writeln;
break;
2013-04-10 16:57:12 -07:00
case 3, 6, 9, 12:
2015-02-20 00:35:01 -05:00
"Fizz".writeln;
break;
2013-04-10 16:57:12 -07:00
case 5, 10:
2015-02-20 00:35:01 -05:00
"Buzz".writeln;
break;
2013-04-10 16:57:12 -07:00
default:
2015-02-20 00:35:01 -05:00
i.writeln;
2013-04-10 16:57:12 -07:00
}
}
2015-02-20 00:35:01 -05:00
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;
}
2013-04-10 16:57:12 -07:00
void main() {
2015-02-20 00:35:01 -05:00
100.fizzBuzz;
writeln;
100.fizzBuzzSwitch;
writeln;
100.fizzBuzzSwitch2;
2013-04-10 16:57:12 -07:00
}