Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 程序中出现StackOverflow错误,我找不到原因_Java_Runtime Error - Fatal编程技术网

Java 程序中出现StackOverflow错误,我找不到原因

Java 程序中出现StackOverflow错误,我找不到原因,java,runtime-error,Java,Runtime Error,声明 sub=s.substring(I,j); 表达式i++的值是当前时间i的值;然后你增加它 因此,您基本上是在调用: recur(i++); 因此,您只需使用相同的参数再次调用recur 尝试: 试试这个 recur(++i); 公共类P{ 公共静态最终字符串s=“geeks”; 静态无效重现(int i){ int n=6;//字符串的大小 如果(i==n) 回来 字符串sub=“”; 对于(int j=i+1;jn变量n在哪里实例化?我认为i==n对“i”的所有值返回false

声明

sub=s.substring(I,j); 
表达式
i++
的值是当前时间
i
的值;然后你增加它

因此,您基本上是在调用:

recur(i++);
因此,您只需使用相同的参数再次调用
recur

尝试:

试试这个

recur(++i);
公共类P{
公共静态最终字符串s=“geeks”;
静态无效重现(int i){
int n=6;//字符串的大小
如果(i==n)
回来
字符串sub=“”;

对于(int j=i+1;jn变量n在哪里实例化?我认为i==n对“i”的所有值返回false,这将导致堆栈溢出错误,即
n
?如果
i
从来都不是
n
,这将永远不会停止,并且作为递归函数,它将生成堆栈溢出。请格式化您的问题,以便我们能够轻松阅读。您的意思可能是
recur(++i)
,或
recur(i+1)
。此函数的可能副本不可编译,
n
之间是什么?
//字符串的大小不是字符串的大小5吗?如果使用
s.length()
,则不需要注释。是的,您可以添加
s.length()
,并将(int j=i+1;j)的迭代更改为

recur(i++);
recur(i);
i++;
recur(++i);
public class P {

    public static final String s="geeks";

    static void recur(int i){

        int n=6;   //Size of string

        if(i==n)
            return;

        String sub="";

        for(int j=i+1;j<n;j++)
        {
            sub=s.substring(i,j);
            //Any Function
            System.out.println(sub);
        }
        recur(++i);
    }


    public static void main(String[] args) {

        P.recur(0);
    }
}