簡體   English   中英

遞歸If / Else

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM