斷言_(程式)

在程式設計中 ， 斷言 （ assertion ） 是一種放在程式中的一階邏輯 （ 如一個結果爲真或是假的邏輯判斷式 ） ， 目的是爲了標示與驗證程式開發者預期的結果 － 當程式執行到斷言的位置時 ， 對應的斷言應該爲真 。 若斷言不爲真時 ， 程式會中止執行 ， 並給出錯誤訊息 。 例如 ， 以下的程式包括二個斷言 ： x: = 5; { x > 0 } x: = x + 1 { x > 1 } x > 0及x > 1 ， 當程式執行到二個斷言對應的位置時 ， 斷言的內容均爲真 。 程式設計者可以用斷言來標示程式 ， 提供程式正確性的相關資訊 。 例如在一段程式前加入斷言 （ 先驗條件 ） ， 說明這段程式執行前預期的狀態 。 或在一段程式後加入斷言  ， 說明這段程式執行後預期的結果 。 以下的範例使用東尼 · 霍爾在1969年論文中提出的斷言標示方式 。 x = 5; x = x + 1; / / { x > 1 } 以上註解中的大括號表示爲斷言 ， 不是一般的註解 。 現有的主流程式語言不支援上述的標示方式 ， 不過程式設計者仍可以用註解的方式標示斷言 ， 標示此時應該成立的條件 ， 只是此斷言沒有檢查機能 ， 不成立時程式不會中止執行 。 許多現代的程式語言已支援有檢查機能的斷言 ， 可能是執行期或其他時間檢查的陳述 。 若在執行期中有斷言不成立 ， 會出現斷言失敗 ， 一般會停止程式的執行 。 程式設計者可以專注在斷言失敗 ， 邏輯不一致的部份 ， 並設法修正 。 斷言的使用有助於程式設計者設計 、 開發及理解程式 。