为了账号安全,请及时绑定邮箱和手机立即绑定

递归程序有一个带有示例方法的 StackOverflowError

递归程序有一个带有示例方法的 StackOverflowError

喵喵时光机 2021-08-25 11:09:12
我创建了一个递归程序来多次打印消息 Hello,但在编译中因 StackOverflowError 而失败。package com.recre;public class Recursionhello {    static void p() {        System.out.println("Hello");    p();}public static void main(String[] args) {    p();    }}它多次打印输出“Hello”,然后打印以下错误消息。输出 -HelloHelloHelloHelloHelloHelloHelloHelloException in thread "main" java.lang.StackOverflowError at java.io.FileOutputStream.write(Unknown Source) at java.io.BufferedOutputStream.flushBuffer(Unknown Source) at java.io.BufferedOutputStream.flush(Unknown Source) at java.io.PrintStream.write(Unknown Source) at sun.nio.cs.StreamEncoder.writeBytes(Unknown Source) at sun.nio.cs.StreamEncoder.implFlushBuffer(Unknown Source) at sun.nio.cs.StreamEncoder.flushBuffer(Unknown Source) at java.io.OutputStreamWriter.flushBuffer(Unknown Source) at java.io.PrintStream.write(Unknown Source) at java.io.PrintStream.print(Unknown Source) at java.io.PrintStream.println(Unknown Source) at com.recre.Recursionhello.p(Recursionhello.java:5) at com.recre.Recursionhello.p(Recursionhello.java:6) at com.recre.Recursionhello.p(Recursionhello.java:6) at com.recre.Recursionhello.p(Recursionhello.java:6) at com.recre.Recursionhello.p(Recursionhello.java:6) at com.recre.Recursionhello.p(Recursionhello.java:6) at com.recre.Recursionhello.p(Recursionhello.java:6) at com.recre.Recursionhello.p(Recursionhello.java:在这里,我需要有关错误的助手和有关递归的一些解释。
查看完整描述

2 回答

?
catspeake

TA贡献1111条经验 获得超0个赞

Java 中的任何递归程序都必须具有退出条件,如下所示:


public class Recursionhello {

    static void p(int times) {

        System.out.println("Hello");

        if(times > 0) {

            p(times - 1);

        }

    }


    public static void main(String[] args) {

        p(5);

    }

}


查看完整回答
反对 回复 2021-08-25
  • 2 回答
  • 0 关注
  • 153 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号