Программа представляет собой набор инструкций процессора, которые и выполняются по порядку. Знание языка ассемблера помогает понять это на себе :).
Существует такие инструкции перехода и условий, при выполнении последного процессор может "перемещаться" на любую другую инструкцию, вверх или вниз программы.
Таким образом, проверяется условие и в завистимости от результата пропускаются ненужные блоки инструкций, а переход осуществляется на нужный. Вообщем, как то так , попытался более простым языком объяснить