遞歸(英語:recursion)在電腦科學中是指一種通過重複將問題分解為同類的子問題而解決問題的方法。[1] 遞歸式方法可以被用於解決很多的電腦科學問題,因此它是電腦科學中十分重要的一個概念。[2] 絕大多數程式語言支援函數的自呼叫,在這些語言中函數可以通過呼叫自身來進行遞歸。計算理論可以證明遞歸的作用可以完全取代迴圈,因此有很多在函數程式語言(如Scheme)中用遞歸來取代迴圈的例子。
電腦科學家尼克勞斯·維爾特如此描述遞歸:
遞歸的強大之處在於它允許用戶用有限的陳述式描述無限的物件。因此,在電腦科學中,遞歸可以被用來描述無限步的運算,儘管描述運算的程式是有限的。