コピペプログラミングでごめんなさい・・・
数値も出力できてないし・・・
FizzBuzzもエレガントに書けないなんて・・・
package javaapplication1; public class FizzBuzzEx { public static void main(String[] args) { new FizzBuzzEx().n(1); } public void n(int i){ if(i % 3 == 0){ if(i % 5 == 0){ fizzbuzz(i + 1); }else{ fizz(i + 1); } }else{ if(i % 5 == 0){ buzz(i + 1); }else{ n(i + 1); } } } public void fizz(int i){ if(i % 3 == 0){ if(i % 5 == 0){ fizzbuzz(i + 1); }else{ fizz(i + 1); } }else{ if(i % 5 == 0){ buzz(i + 1); }else{ n(i + 1); } } } public void buzz(int i){ if(i % 3 == 0){ if(i % 5 == 0){ fizzbuzz(i + 1); }else{ fizz(i + 1); } }else{ if(i % 5 == 0){ buzz(i + 1); }else{ n(i + 1); } } } public void fizzbuzz(int i){ if(i % 3 == 0){ if(i % 5 == 0){ fizzbuzz(i + 1); }else{ fizz(i + 1); } }else{ if(i % 5 == 0){ buzz(i + 1); }else{ n(i + 1); } } } }
結果
Exception in thread "main" java.lang.StackOverflowError at javaapplication1.FizzBuzzEx.n(FizzBuzzEx.java:20) at javaapplication1.FizzBuzzEx.fizz(FizzBuzzEx.java:46) at javaapplication1.FizzBuzzEx.buzz(FizzBuzzEx.java:55) at javaapplication1.FizzBuzzEx.n(FizzBuzzEx.java:28) at javaapplication1.FizzBuzzEx.fizz(FizzBuzzEx.java:46) at javaapplication1.FizzBuzzEx.n(FizzBuzzEx.java:24) at javaapplication1.FizzBuzzEx.n(FizzBuzzEx.java:30) at javaapplication1.FizzBuzzEx.fizzbuzz(FizzBuzzEx.java:76) at javaapplication1.FizzBuzzEx.n(FizzBuzzEx.java:22) at javaapplication1.FizzBuzzEx.n(FizzBuzzEx.java:30) at javaapplication1.FizzBuzzEx.fizz(FizzBuzzEx.java:46) at javaapplication1.FizzBuzzEx.n(FizzBuzzEx.java:24) at javaapplication1.FizzBuzzEx.buzz(FizzBuzzEx.java:61) at javaapplication1.FizzBuzzEx.fizz(FizzBuzzEx.java:44) at javaapplication1.FizzBuzzEx.n(FizzBuzzEx.java:24) at javaapplication1.FizzBuzzEx.n(FizzBuzzEx.java:30) at javaapplication1.FizzBuzzEx.fizz(FizzBuzzEx.java:46) at javaapplication1.FizzBuzzEx.buzz(FizzBuzzEx.java:55) at javaapplication1.FizzBuzzEx.n(FizzBuzzEx.java:28) at javaapplication1.FizzBuzzEx.fizz(FizzBuzzEx.java:46) at javaapplication1.FizzBuzzEx.n(FizzBuzzEx.java:24) at javaapplication1.FizzBuzzEx.n(FizzBuzzEx.java:30) at javaapplication1.FizzBuzzEx.fizzbuzz(FizzBuzzEx.java:76) at javaapplication1.FizzBuzzEx.n(FizzBuzzEx.java:22) at javaapplication1.FizzBuzzEx.n(FizzBuzzEx.java:30) at javaapplication1.FizzBuzzEx.fizz(FizzBuzzEx.java:46) at javaapplication1.FizzBuzzEx.n(FizzBuzzEx.java:24) (略)