java - 这个问题的答案是什么?
问题描述
我对这个问题感到困惑:
考虑以下方法。recur("mouse", 2) 的值是多少?
public static String recur(String str, int n)
{
if(n >= str.length())
{
return str;
}
return str + recur(str.substring(n), n + 2);
}
我认为该值将是“使用”,因为该方法使用 recur(use,4) 重复出现,导致它返回使用,但我不确定它是否会在第一次返回时停止导致它使用,或者它是否会转到第二个返回语句。
解决方案
好吧,让我们追踪一下recur("mouse", 2)
:
- 2≥5吗?不。
- 返回
"mouse" + recur("use", 4)
。
让我们追踪recur("use", 4)
:
- 是 4 ≥ 3 吗?是的。
- 返回
"use"
。
所以,回到recur("mouse", 2)
,我们让它返回:
"mouse" + recur("use", 4)
"mouse" + "use"
"mouseuse"
推荐阅读
- java - br.read() 如何在读取字符串结束时给出 -1 或 br.read() 究竟是如何工作的?
- android - 谷歌浏览器远程调试没有显示任何东西
- c++ - Windows系统中的C++错误输出
- python-3.x - 我如何使用 python boto3 获取对象标签
- ionic-framework - 离子电容器广告
- vuejs3 - vue3 组合 API - 观看
- error-handling - Spring Webflux:根据抛出的异常返回状态码和消息
- c++ - 将值传递给类的对象,这怎么可能?
- flask - 从烧瓶形式的 JSON 数据中删除多个项目
- visual-studio - 无法在 Xamarin 表单应用程序中添加 Flyout 页脚