0

recurse()在语句之后调用时,它周围if是否有暗示?else{}

public static void recurse(int[] a, int position) {
      // BASE
      if (position == a.length){  return;}
      // RECURSIVE

      recurse(a, position + 1);

      System.out.println(a[position]);
}
4

4 回答 4

4

不,else没有暗示。只有在不else运行时才会运行案例。在这种情况下,由于您在 的主体中返回,因此将跳过该方法的其余部分。从逻辑上讲,它们可能是相同的,但这只是因为返回。如果您删除了它,则无论语句中的条件如何,递归调用都会运行。ififrecurseif

于 2013-04-15T20:18:13.523 回答
1

看到递归函数不存在,你得把它重命名为reverse,像这样

public static void reverse(int[] a, int position) {
          // BASE
          if (position == a.length){  return;}
          // RECURSIVE

          reverse(a, position + 1);

          System.out.println(a[position]);
        }

不是,程序中没有隐含的 else ;)

于 2013-04-15T20:27:00.360 回答
0

没有任何暗示,但只有当 if 语句 ( ) 中的条件评估为 false(因为该语句)recurse()时才会发生调用,因此在这种情况下它的行为相同。position == a.lengthreturn

于 2013-04-15T20:19:19.687 回答
0

有点。“else”表示“仅在条件为假时执行”

如果条件 (position == a.length) 为真,则此函数将在调用“recurse”之前返回。

如果该条件为假,该函数将继续调用“递归”并打印。

于 2013-04-15T20:20:15.450 回答