当前位置: 首页 > 知识库问答 >
问题:

返回未编译的int的递归方法

宓和同
2023-03-14

我现在正在学习Java,有一个任务,我应该创建一个方法,在输入两个关键字中的一个之前,一直要求用户输入。然后,它应该返回一个int。

public static int getCommand(){
    String command = IOTools.readString("Enter Command!");
    if (command.equals("exit")){
        return 1;
    } else if (command.equals("shift")){
        return 0;
    } else {
        getCommand();
    }
}

共有3个答案

左翰海
2023-03-14

这里缺少返回语句

else {
   getCommand();
}

你的方法的所有路径都需要返回一些东西。

支洋
2023-03-14

在最后一种情况下,您需要添加一个返回类型

public static int getCommand(){
    String command = IOTools.readString("Enter Command!");
    if (command.equals("exit")){
        return 1;
    } else if (command.equals("shift")){
        return 0;
    } else {
        return getCommand();
    }
}

这个函数getCommand()调用返回的是int值,但不在else案例中,因此如果控件落在else案例中,则将执行递归函数调用,尽管无法保证getCommand()将返回一个int值,这是由于else的情况,因此编译器会检测到错误,并根据这种情况返回类型不是void

函数中的每个执行路径都必须指向一个RETURN语句

弘伟彦
2023-03-14

您在递归调用中缺少返回语句

public static int getCommand(){
    String command = IOTools.readString("Enter Command!");
    if (command.equals("exit")){
        return 1;
    } else if (command.equals("shift")){
        return 0;
    } else {
        return getCommand(); // Added return here
    }
}
 类似资料:
  • 我有一个递归函数,它会重复这个函数,直到不满足if条件,然后输出一个整数。但是,此函数之外需要整数的函数正在接收一个单位。我应该如何修改代码以返回int? 这就是整个程序 }

  • 问题内容: 我有一个计算税金的函数。 我不明白为什么它不能停止递归。 问题答案: 在您的职能部门中: 您没有从函数或设置中返回值。当您不返回任何内容时,返回值为。 也许,您想要这样:

  • 我试图在Java中创建一个方法,它打印fib序列,直到传递给该方法的数字。我的问题是,我需要使用int返回类型来返回序列,而我不能使用递归。

  • 我不得不使用全局变量found来指示在哪里找到了一个和。返回语句始终未定义。 此外,如果在下面的if语句中使用return语句,代码将无法正常工作。 这不是问题的最佳解决方案,但这是我得到的工作版本。 返回语句之间的****,删除时代码工作,否则我要么得到false或未定义。我不明白这部分!为什么删除返回就能解决问题,我认为每个递归调用都必须用返回语句进行。 问题可能是由于多次呼叫造成的吗?我是不

  • 我有以下递归javascript函数,它在Backbone.Marionette CollectionView的子级上循环,该子级具有依次为CollectionViews的ItemViews: 我是这样称呼它的: var view=DocumentManager.Documents.TreeRoot.FindViewByCID(model.cid); 问题是这一行: 如果我有这样的等级 然后te

  • 我正在研究一个简单的递归方法,在Ruby中实现Euclid的算法,并发现自己在弄清楚一旦达到基本情况后如何返回所需的值。以下是我必须了解的内容: 并且输出: 注意,“puts euclid_alg(100,15)”没有输出,我希望返回100和15,5的最大公约数。 为了进行故障排除,我将第3行中的替换为。新的产出是: 将“make it here 5 10”添加到控制台输出中,可以清楚地表明 re