Exception in thread “main” java.lang.StackOverflowError [требует правки]

158
04 января 2018, 23:18

Почему происходит переполнение стека, если осуществлять цикл посредством for(), хотя с циклом do-while компиляция выполняется корректно?

   public class HelloWorld{
    public static void main(String[] args)  {
    int   i=0;  
        for(i=0;i<2;i++) {
            System.out.println(i+"\t"+fff(i));
        }       
    }
        static public long fff (int n) {
            if (n==1) return n;
            return fff(n-1)*n;
        }
    }

Ошибка:

Exception in thread "main" java.lang.StackOverflowError
at HelloWorld.fff(HelloWorld.java:25)
at HelloWorld.fff(HelloWorld.java:25)
at HelloWorld.fff(HelloWorld.java:25)
at HelloWorld.fff(HelloWorld.java:25)

В данном коде компиляция выполняется корректно:

    public class HelloWorld{
    ublic static void main(String[] args)  {
    int   i=0;
        do{
           i++;
           System.out.println(i+"\t"+fff(i));
        }while(i<10);   
    }
        static public long fff (int n) {
           if (n==1) return n;
           return fff(n-1)*n;
        }
    }
READ ALSO
Форма записи try-catch

Форма записи try-catch

Столкнулся с кодом:

145
С помощью JSOUP спарсить текст!

С помощью JSOUP спарсить текст!

Как мне достать весь текст из этого куска статьи? Обычным способом это не получается

171
СУБД Java и какую выбрать? [требует правки]

СУБД Java и какую выбрать? [требует правки]

Новичок и хотел бы узнать какую СУБД мне "учить"? Открыл hhru посмотрел и везде пишут просто: SQL, я знаю что это язык структурированных запросов,...

190
Java Servlet работа с Json

Java Servlet работа с Json

Недавно начал изучать servletНа данный момент на томкате развернут проект с одной jsp страничкой

168