Edited at

Javaでショートで不適切なfizzbuzz

More than 3 years have passed since last update.

はじめに

FizzBuzzと言えば、ruby,python,perlなどのスクリプト言語でのコードゴルフやワンライナーの代表的な問題です。

その問題をjavaでなるべく簡単に解いてみました

コード

一般的な解答


public class FizzBuzz {

public static void main(String[] args){

for(int i = 1; i <= 100; i++){
if(i%15 == 0){
System.out.println("FizzBuzz");
}else if(i%5 == 0){
System.out.println("Buzz");
}else if(i%3 == 0){
System.out.println("Fizz");
}else{
System.out.println(i);
}
}

}
}

ifの条件分岐を使用した一般的な解答です。

これと同様の内容をswitch文でも実装できます。

次は三項演算子を実装して解いてみます

不適切ver


public class FizzBuzz {

public static void main(String[] args){

for(int i = 1; i <= 100; i++){
System.out.println(judge(i));//数値をメソッドに渡す
}

}

public static String judge(int i){
String result = (i%15 == 0)?"FizzBuzz": //3,5の倍数の場合
(i%5 == 0)?"Buzz": //5の倍数
(i%3 == 0)?"Fizz": //3の倍数
Integer.toString(i);//全てに一致しない場合
return result;
}

}

このコードはstaticメソッドにint型の整数iを渡して、その値について順番に三項演算子で条件を当てはめて

結果をstring型の変数として返し、出力するだけです。

可読性度外視です