当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]);
}
当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]);
}
不,else
没有暗示。只有在不else
运行时才会运行案例。在这种情况下,由于您在 的主体中返回,因此将跳过该方法的其余部分。从逻辑上讲,它们可能是相同的,但这只是因为返回。如果您删除了它,则无论语句中的条件如何,递归调用都会运行。if
if
recurse
if
看到递归函数不存在,你得把它重命名为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 ;)
没有任何暗示,但只有当 if 语句 ( ) 中的条件评估为 false(因为该语句)recurse()
时才会发生调用,因此在这种情况下它的行为相同。position == a.length
return
有点。“else”表示“仅在条件为假时执行”
如果条件 (position == a.length) 为真,则此函数将在调用“recurse”之前返回。
如果该条件为假,该函数将继续调用“递归”并打印。