首页 > 解决方案 > 这个问题的答案是什么?

问题描述

我对这个问题感到困惑:

考虑以下方法。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) 重复出现,导致它返回使用,但我不确定它是否会在第一次返回时停止导致它使用,或者它是否会转到第二个返回语句。

标签: java

解决方案


好吧,让我们追踪一下recur("mouse", 2)

  1. 2≥5吗?不。
  2. 返回"mouse" + recur("use", 4)

让我们追踪recur("use", 4)

  1. 是 4 ≥ 3 吗?是的。
  2. 返回"use"

所以,回到recur("mouse", 2),我们让它返回:

  • "mouse" + recur("use", 4)
  • "mouse" + "use"
  • "mouseuse"

推荐阅读