條款四十六,總是使用 EXIT WHILE loop 去跳離迴圈,不要使用 IF…EXIT。

像是下面這樣的程式使用 IF 判斷要跳離迴圈的條件是否成立,成立的話使用 EXIT 跳離迴圈。如果 IF 判斷只是單純的用來處裡跳離迴圈的條件判斷,那這樣的撰寫方式就不是那麼洽當,程式碼變得比較冗餘,且不好維護。

BEGIN 
  <<process_employees>> 
  LOOP 
    ... 
    IF 
      ... 
    THEN 
      EXIT process_employees; 
    END IF; 
    ... 
  END LOOP process_employees; 
END;

比較好的做法是用 EXIT WHEN,將跳離迴圈的判斷直接寫在 EXIT WHEN 後面,這樣程式會比較簡短、清晰、且易於維護。

BEGIN 
  <<process_employees>> 
  LOOP 
    ... 
    EXIT process_employees WHEN (...); 
  END LOOP process_employees; 
END;