此版本的定理將原來定理中的程式控制流程改為一個while迴圈,模擬在原來非結構化的程式中,程式計數器走過所有可能標記(流程圖方塊)的情形。哈雷尔将此版大眾定理的源头追溯到两篇論文,一篇是1946年描述冯·诺伊曼结构,用單一while迴圈說明程式計數器的運作原理,哈雷尔也注意到大眾定理中用到的單一迴圈基本上可以提供冯·诺伊曼式電腦執行流程的操作語義。[3]:383。另一篇更早期的論文則是斯蒂芬·科尔·克莱尼1936年的正规形式定理(Kleene's T predicate)論文[3]:383。
高德纳批評這種轉換後的結果類似以下的伪代码,重點是在此轉換中完全破壞了原程式的結構[5]:274。Bruce Ian Mills也有類似的看法:「塊狀結構的精神是其風格,不是使用的語言。利用模擬冯·诺伊曼结构的方式,可以將任何一個面条式代码轉換為塊狀結構的語言,但它面条式代码的本質沒有改變。」[6]
直接應用伯姆及贾可皮尼定理可能要引入額外的局部变量,也可能产生代码重覆的問題[12],後者也稱為loop and a half problem[13]。Pascal受到這些問題的影響,依照埃里克·S·罗伯茨(英语:Eric S. Roberts)的實驗研究,學習程式設計的學生难以用Pascal設計正确程式碼来解决简单的問題,其中甚至包括從陣列中找尋一個元素的問題。一篇1980年由Henry Shapiro进行,而后被被罗伯茨引用的研究指出,若只用Pascal提出的流程控制指令,只有20%的人的解答是正確的,但若允許在迴圈中直接加入return的話,所有人都写出了正確的答案[9]。
S. Rao Kosaraju(英语:S. Rao Kosaraju)在1973年證明只要允許可以從任意深度迴圈中多層次跳出,就可以將程式轉換成結構化編程,而不用引入額外的变量[1][14]。而且Kosaraju證明了存在一個嚴格的程式階層(現在稱為Kosaraju階層),針對任一整數n,存在一個程式,其中包括深度n的多層次跳出,而且在不引入額外变量的條件下,無法用深度小於n的跳出來實現[1]。Kosaraju称這種多層次跳出結構源于BLISS(英语:BLISS)語言。BLISS語言中的多層次跳出形式為leave label,实际上在BLISS-11版本中才引入到BLISS中,原始的BLISS只有單一層次的跳出。BLISS語言家族不提供無限制的跳转指令,Java語言後來也引入類似BLISS語言中的多層次跳出指令[15]:960-965。
Kosaraju的論文中有另一個較簡單的結論:若程式可以在不用額外变量(及多層次的跳出)下化約為結構化程式,其充份必要條件是程式中沒有一個迴圈有二個或二個以上的結束點。簡單來說,此處Kosaraju定義的化約是指用相同的「基本動作」及判斷,計算相同的函数,但是可能用不同的控制流程(此處的化約比伯姆及贾可皮尼定理中提及的範圍要窄)。受到這個結論的启发,Thomas J. McCabe(英语:Thomas J. McCabe)在他引入循環複雜度的論文中的第四部份,描述了對應非結構化程式控制流圖(CFG)的Kuratowski定理(英语:Kuratowski's theorem)。使控制流圖變得无法結構化的最小子圖是:
^Bohm, Corrado; Giuseppe Jacopini. Flow Diagrams, Turing Machines and Languages with Only Two Formation Rules. Communications of the ACM. May 1966, 9 (5): 366–371. doi:10.1145/355592.365646.
^Ashcroft, Edward; Zohar Manna. The translation of go to programs to 'while' programs. Proceedings of IFIP Congress. 1971. The paper, which is difficult to obtain in the original conference proceedings due to their limited distribution, was republished in Yourdon's 1979 book pp. 51-65