Przepływ sterowania () – zbiór instrukcji i wyrażeń uporządkowanych w kolejności wykonania. W języku programowania instrukcja przepływu sterowania może zmienić przepływ sterowania tak, aby wyrażenia wykonywane były w innej kolejności niż ta, w jakiej są wypisane w kodzie źródłowym. Pojęcie przepływu danych jest prawie zawsze ograniczane do pojedynczego wątku aplikacji, ponieważ dotyczy ono wykonywania instrukcji jednej po drugiej.

Rodzaje instrukcji przepływu sterowania różnią się w zależności od języka, ale mogą być pogrupowane ze względu na efekt, jaki powodują: Kontynuacja od innego punktu programu (skok) Warunkowe wykonanie grupy wyrażeń (wybór) Powtarzanie wykonywania grupy wyrażeń (pętla, odpowiednik skoku do wcześniejszego miejsca w kodzie) Wykonywanie grupy odległych wyrażeń, po których sterowanie powraca do miejsca wywołania (podprogram) Wyjątki – przejście w górę stosu wywołań programu do miejsca w którym dany wyjątek jest obsługiwany, z możliwością przenoszenia dodatkowych informacji Systemy efektów – podobnie do wyjątków z tą różnicą, że po obsłużeniu () efektu program jest kontynuowany od momentu w którym efekt został wywołany Zupełne przerwanie wykonywania programu