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