[英]Recursion If/Else
在if
語句之后調用recurse()
,它周圍是否暗含了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
的主體,因此該方法的其余部分將被跳過。 從邏輯上講,它們可能是相同的,但這僅僅是因為返回。 如果刪除了該代碼,則無論if
語句中的條件如何,都會運行對recurse
的遞歸調用。
看到遞歸函數不存在,您必須將其重命名為反向,就像這樣
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語句( position == a.length
)中的條件評估為false(由於return
語句)時,才會發生recurse()
調用,因此在這種情況下,它的行為相同。
有點。 “ else”表示“僅在條件為假時才執行”
如果條件(position == a.length)為true,則此函數將在調用“遞歸”之前返回。
如果該條件為假,該函數將繼續調用“遞歸”並打印。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.