Da ich die Möglichkeit, Java bei der Arbeit zu berühren, völlig verpasst habe, habe ich darüber nachgedacht, wie ich das "Fizz Buzz-Problem" mit Java auf verschiedene Arten lösen kann.
FizzBuzz.java
/**
*Eine gebräuchliche Methode mit der for-Anweisung.
* @param end Die Nummer zum Beenden von FizzBuzz.
*/
public static void useForLoop(int end) {
for (int i=1; i<=end; i++) {
if (i%3==0 && i%5==0) {
System.out.println("Fizz Buzz");
} else if (i%3==0) {
System.out.println("Fizz");
} else if (i%5==0) {
System.out.println("Buzz");
} else {
System.out.println(i);
}
}
}
FizzBuzz.java
/**
*Eine Methode, die den ternären Operator verwendet.
* @param end Die Nummer zum Beenden von FizzBuzz.
*/
public static void useForLoopWithTertiaryOperator(int end) {
for (int i=1; i<=end; i++) {
System.out.println(
(i%3==0 && i%5==0) ? "Fizz Buzz" : (i%3==0) ? "Fizz" : (i%5==0) ? "Buzz" : i
);
}
}
FizzBuzz.java
import java.util.stream.IntStream;
...
/**
*Eine Methode, die die Stream-API verwendet.
* @param end Die Nummer zum Beenden von FizzBuzz.
*/
public static void useStreamAPI(int end) {
IntStream.rangeClosed(1, end)
.mapToObj(i -> (i%3==0 && i%5==0) ? "Fizz Buzz" : (i%3==0) ? "Fizz" : (i%5==0) ? "Buzz" : i)
.forEach(msg -> System.out.println(msg));
}
Recommended Posts