條款四十七,嘗試將 EXIT WHEN 搭配 label 使用。

像是下面這樣的程式,雖然使用了 EXIT WHEN 跳離迴圈,但是未搭配 label 使用,因此在巢狀迴圈下得一層一層的跳離。

BEGIN 
  ...
  <<outerloop>> 
  LOOP 
    ...
    <<innerloop>> 
    LOOP 
      ...
      EXIT WHEN l_innerlp = co_exit_value; 
    END LOOP innerloop; 
	EXIT WHEN l_innerlp = co_exit_value;
  END LOOP outerloop; 
END;

如果將 EXIT WHEN 搭配 label 使用可以直接在巢狀迴圈下跳離,這樣程式會比較簡短、清晰、且易於維護。

BEGIN 
  ...
  <<outerloop>> 
  LOOP 
    ...
    <<innerloop>> 
    LOOP 
      ...
      EXIT outerloop WHEN l_innerlp = 3; 
    END LOOP innerloop; 
  END LOOP outerloop; 
END;