تفرع أو القفز أو النقل هو تعليمة في برنامج الحاسوب تُؤدي إلى بدء تنفيذ تسلسل تعليمات مختلف، وبالتالي الخروج عن سلوكه الافتراضي في تنفيذ التعليمات بالتسلسل.[أ] يُشير التفرع أيضًا إلى عملية تحويل التنفيذ إلى تسلسل تعليمات مختلف نتيجةً لتنفيذ تعليمة تفرع. تُستخدم تعليمات التفرع للتحكم في تدفق البرنامج في الحلقات والشروط (أي تنفيذ تسلسل تعليمات مُحدد فقط إذا تحققت شروط مُعينة).
يُستخدم مصطلح التفرع أيضًا عند الإشارة إلى البرامج المكتوبة بلغات البرمجة عالية المستوى. وعادةً ما تتخذ التفرعات في هذه اللغات شكل تعبيرات شرطية متنوعة تُغلف تسلسل التعليمات الذي سيُنفذ عند تحقق الشروط. تُستخدم تعليمات التفرع غير المشروطة، مثل تعليمة "انتقل إلى"، للانتقال مباشرةً إلى تسلسل تعليمات مختلف. إذا كانت الخوارزمية تتطلب تفرعًا شرطيًا، فإن عبارة GOTO (أو استدعاء روتين فرعي GOSUB) تسبقها عبارة IF-THEN تُحدد الشرط (أو الشروط). تدعم جميع لغات البرمجة عالية المستوى خوارزميات تُعيد استخدام التعليمات البرمجية كحلقة تكرارية، وهي بنية تحكم تُكرر تسلسلًا من التعليمات حتى يتحقق شرط ما يُنهي الحلقة.