"Да, и sed, и awk, и python написаны на С - но только для того, чтобы больше не писать на С" - не помню чья давняя фраза :-) Но тем не менее - замена вложенных циклов на один возможна далеко не всегда (возможно, я просто неправильно воспринял фразу
"от цикла for можно уйти к циклу while и там будет гораздо проще контролировать поведение программы" - не увидев "области определения" решил, что она широкая :-) )
И всё-таки
for(y = min_y; y < max_y; ++y)
for(x = min_x; x < max_x; ++x)
if( cond1) goto done;
done: ;
заменять на
y = min_y;
x = min_x;
while( y <= min_y) {
if( cond1) break;
if( ++x <= max_x) continue;
x = min_x;
++y;
}
хоть и можно, но (на мой взгляд, естественно), это - уродство, маскирующее суть алгоритма ради непонятно чего.
Т.е. я не считаю, что это позволяет "гораздо проще контролировать поведение программы". И, честно говоря, не уверен, что break с указанием числа уровней, из которых нужно вывалиться - лучше. Не пробовал, не знаю.
В сущности - все языки программирования - "сахар" поверх мнемокода :-)